[shortcuts] add keyboard shortcuts

This commit is contained in:
Jan Grewe 2025-01-29 08:34:23 +01:00
parent 216be7b1e5
commit 344b919f0f
2 changed files with 36 additions and 2 deletions

View File

@ -1,6 +1,7 @@
import logging
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy, QHBoxLayout, QPushButton
from PySide6.QtCore import Qt, QSize
from PySide6.QtGui import QIcon
from fixtracks.widgets.tracks import FixTracks
from fixtracks.widgets.detectionmerge import MergeDetections
@ -15,6 +16,7 @@ class CentralWidget(QWidget):
self._tw = TasksWidget(darkmode)
self._tw.clicked.connect(self._select_task)
self._tw.opened.connect(self.on_open)
self._mergewidget = MergeDetections(self)
self._mergewidget.back.connect(self._on_back)
@ -25,14 +27,40 @@ class CentralWidget(QWidget):
self._trackwidget = FixTracks(self)
self._trackwidget.back.connect(self._on_back)
convert = "convert"
convertBtn = QPushButton(QIcon(":/icons/convert_light"), "Convert")
convertBtn.setIconSize(QSize(128, 128))
convertBtn.clicked.connect(lambda: self._select_task(convert))
merge = "merge"
mergeBtn = QPushButton(QIcon(":/icons/merge_light"), "Merge")
mergeBtn.setIconSize(QSize(128, 128))
mergeBtn.clicked.connect(lambda: self._select_task(merge))
track = "track"
trackBtn = QPushButton(QIcon(":/icons/tracks_light"), "Track")
trackBtn.setIconSize(QSize(128, 128))
trackBtn.clicked.connect(lambda: self._select_task(track))
btnlyt = QHBoxLayout()
btnlyt.addWidget(convertBtn, alignment=Qt.AlignmentFlag.AlignCenter)
btnlyt.addWidget(mergeBtn, alignment=Qt.AlignmentFlag.AlignCenter)
btnlyt.addWidget(trackBtn, alignment=Qt.AlignmentFlag.AlignCenter)
taskgrid = QWidget()
taskgrid.setLayout(btnlyt)
layout = QStackedLayout()
layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
self._tasksindex = layout.addWidget(self._tw)
self._btnindex = layout.addWidget(taskgrid)
self._convertindex = layout.addWidget(self._convertwidget)
self._mergeindex = layout.addWidget(self._mergewidget)
self._trackindex = layout.addWidget(self._trackwidget)
self.setLayout(layout)
def on_open(self):
self.layout().setCurrentIndex(self._btnindex)
def _select_task(self, s):
logging.debug("Centralwidget: Selected task: %s", s)
if "merge" in s.lower():

View File

@ -8,6 +8,7 @@ from PySide6.QtGui import QIcon, QAction
class TasksWidget(QWidget):
clicked = Signal((str,))
opened = Signal()
def __init__(self, darkmode, parent = None):
super().__init__(parent)
@ -22,22 +23,26 @@ class TasksWidget(QWidget):
def createActions(self):
self._openAction = QAction(QIcon(":icons/open" + self._iconsuffix), "Open folder")
self._openAction.setToolTip("Open data folder")
self._openAction.setShortcut("Ctrl+O")
self._openAction.triggered.connect(self._on_open)
self._openAction.setEnabled(True)
self._convertAction = QAction(QIcon(":/icons/convert" + self._iconsuffix), "Convert")
self._convertAction.setEnabled(True)
self._convertAction.setShortcut("F2")
self._convertAction.setToolTip("Convert JSON pose files to to Pandas data frames")
self._convertAction.triggered.connect(self._convert_clicked)
self._mergeAction = QAction(QIcon(":/icons/merge" + self._iconsuffix), "Merge")
self._mergeAction.setToolTip("Merge detections from two cameras to the same dataset")
self._mergeAction.setShortcut("F3")
self._mergeAction.setEnabled(False)
self._mergeAction.triggered.connect(self._merge_clicked)
self._tracksAction = QAction(QIcon(":/icons/tracks" + self._iconsuffix), "Tracks")
self._tracksAction.setToolTip("Merge detections from two cameras to the same dataset")
self._tracksAction.setEnabled(False)
self._tracksAction.setShortcut("F4")
self._tracksAction.triggered.connect(self._tracks_clicked)
self._menuActions["File"] = [self._openAction]
@ -117,6 +122,7 @@ class TasksWidget(QWidget):
if len(self._file_list) > 0:
self._mergeAction.setEnabled(True)
self._tracksAction.setEnabled(True)
self.opened.emit()
@property
def fileList(self):