[centralwidget] different layout of the tasks, new icons
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
@ -7,7 +7,7 @@
|
||||
<file alias="close">icons/nix_close.png</file>
|
||||
<file alias="open_light">icons/open_light.png</file>
|
||||
<file alias="open_dark">icons/open_dark.png</file>
|
||||
<file alias="merge_light">icons/merge.png</file>
|
||||
<file alias="merge_light">icons/merge_light.png</file>
|
||||
<file alias="merge_dark">icons/merge_dark.png</file>
|
||||
<file alias="convert_light">icons/convert_light.png</file>
|
||||
<file alias="convert_dark">icons/convert_dark.png</file>
|
||||
|
@ -1,7 +1,7 @@
|
||||
import logging
|
||||
|
||||
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy, QHBoxLayout, QPushButton, QLabel, QVBoxLayout, QGridLayout
|
||||
from PySide6.QtCore import Qt, QSize
|
||||
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy, QHBoxLayout, QFrame, QLabel, QVBoxLayout, QGridLayout, QSpacerItem
|
||||
from PySide6.QtCore import Qt, QSize, Signal
|
||||
from PySide6.QtGui import QIcon, QFont, QImage, QPixmap
|
||||
|
||||
from fixtracks.widgets.tracks import FixTracks
|
||||
@ -9,22 +9,25 @@ from fixtracks.widgets.detectionmerge import MergeDetections
|
||||
from fixtracks.widgets.taskwidget import TasksWidget, Task
|
||||
from fixtracks.widgets.converter import Json2PandasConverter
|
||||
|
||||
class TaskCard(QWidget):
|
||||
class TaskCard(QFrame):
|
||||
clicked = Signal()
|
||||
|
||||
def __init__(self, name, icon, description, taks, parent=None):
|
||||
def __init__(self, name, icon, description, parent=None):
|
||||
super().__init__(parent)
|
||||
self.setMaximumSize(300, 150)
|
||||
# self.setStyleSheet("background-color: gray;")
|
||||
self.setMaximumSize(300, 200)
|
||||
self.setFrameShape(QFrame.Shape.Box)
|
||||
# self.setStyleSheet("border: 2px solid gray; border-radius: 15px; border-color: white;background-color: green;")
|
||||
font = QFont()
|
||||
font.setBold(True)
|
||||
font.setPointSize(14)
|
||||
font.setPointSize(18)
|
||||
|
||||
name_label = QLabel(name)
|
||||
name_label.setFont(font)
|
||||
description_label = QLabel(description)
|
||||
description_label.setLineWidth(100)
|
||||
description_label.setLineWidth(150)
|
||||
description_label.setWordWrap(True)
|
||||
icon_label = QLabel()
|
||||
icon_label.setFixedSize(128, 128)
|
||||
icon_label.setFixedSize(150, 150)
|
||||
pixmap = QPixmap.fromImage(QImage(icon))
|
||||
scaled_pixmap = pixmap.scaled(icon_label.size(), Qt.AspectRatioMode.KeepAspectRatio, Qt.TransformationMode.SmoothTransformation)
|
||||
icon_label.setPixmap(scaled_pixmap)
|
||||
@ -32,16 +35,15 @@ class TaskCard(QWidget):
|
||||
hbox = QHBoxLayout()
|
||||
hbox.addWidget(icon_label)
|
||||
hbox.addWidget(description_label)
|
||||
|
||||
self.mousePressEvent = self._on_click
|
||||
|
||||
lyt = QVBoxLayout()
|
||||
lyt.addWidget(name_label)
|
||||
lyt.addLayout(hbox)
|
||||
self.setLayout(lyt)
|
||||
|
||||
# trackBtn.clicked.connect(lambda: self._select_task(track))
|
||||
|
||||
|
||||
def _on_click(self, event):
|
||||
self.clicked.emit()
|
||||
|
||||
|
||||
class CentralWidget(QWidget):
|
||||
@ -49,7 +51,7 @@ class CentralWidget(QWidget):
|
||||
def __init__(self, darkmode, parent=None):
|
||||
super().__init__(parent)
|
||||
self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
||||
|
||||
self._folderopen = False
|
||||
self._tw = TasksWidget(darkmode)
|
||||
self._tw.clicked.connect(self._select_task)
|
||||
self._tw.opened.connect(self.on_open)
|
||||
@ -62,44 +64,40 @@ class CentralWidget(QWidget):
|
||||
|
||||
self._trackwidget = FixTracks(self)
|
||||
self._trackwidget.back.connect(self._on_back)
|
||||
version = "dark" if darkmode else "light"
|
||||
convert_task = TaskCard(Task.CONVERT.value, f":/icons/convert_{version}",
|
||||
"Convert JSON pose files to to Pandas data frames")
|
||||
convert_task.clicked.connect(lambda: self._select_task(Task.CONVERT))
|
||||
merge_task = TaskCard(Task.MERGE.value, f":/icons/merge_{version}", "Merge detections from two cameras to the same dataset")
|
||||
merge_task.clicked.connect(lambda: self._select_task(Task.MERGE))
|
||||
track_task = TaskCard(Task.MERGE.value, f":/icons/tracks_{version}", "Fix tracking of individuals, reassign track ids.")
|
||||
track_task.clicked.connect(lambda: self._select_task(Task.TRACKS))
|
||||
|
||||
# convert = Task.CONVERT
|
||||
# convertBtn = QPushButton(QIcon(":/icons/convert_light"), Task.CONVERT.value)
|
||||
# convertBtn.setToolTip("Convert JSON pose files to to Pandas data frames")
|
||||
# convertBtn.setIconSize(QSize(128, 128))
|
||||
# convertBtn.clicked.connect(lambda: self._select_task(convert))
|
||||
convert_task = TaskCard(Task.CONVERT.value, ":/icons/convert_light", "Convert JSON pose files to to Pandas data frames", Task.CONVERT)
|
||||
|
||||
merge = Task.MERGE
|
||||
mergeBtn = QPushButton(QIcon(":/icons/merge_light"), Task.MERGE.value)
|
||||
mergeBtn.setToolTip("Merge detections from two cameras to the same dataset")
|
||||
mergeBtn.setIconSize(QSize(128, 128))
|
||||
mergeBtn.clicked.connect(lambda: self._select_task(merge))
|
||||
|
||||
track = Task.TRACKS
|
||||
trackBtn = QPushButton(QIcon(":/icons/tracks_light"), Task.TRACKS.value)
|
||||
trackBtn.setToolTip("Fix tracking of individuals, reassign track ids.")
|
||||
trackBtn.setIconSize(QSize(128, 128))
|
||||
trackBtn.clicked.connect(lambda: self._select_task(track))
|
||||
grid = QGridLayout()
|
||||
grid.addWidget(convert_task, 0, 0, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
grid.addWidget(mergeBtn, 1, 0, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
grid.addWidget(trackBtn, 2, 0, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
grid.addWidget(merge_task, 1, 0, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
grid.addWidget(track_task, 0, 1, alignment=Qt.AlignmentFlag.AlignCenter)
|
||||
grid.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
l = QVBoxLayout()
|
||||
l.setAlignment(Qt.AlignmentFlag.AlignHCenter)
|
||||
l.addItem(QSpacerItem(100, 100, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding))
|
||||
l.addLayout(grid)
|
||||
l.addItem(QSpacerItem(100, 100, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding))
|
||||
taskgrid = QWidget()
|
||||
taskgrid.setMaximumWidth(1000)
|
||||
taskgrid.setLayout(grid)
|
||||
taskgrid.setLayout(l)
|
||||
|
||||
layout = QStackedLayout()
|
||||
layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
self._tasksindex = layout.addWidget(self._tw)
|
||||
self._btnindex = layout.addWidget(taskgrid)
|
||||
self._btnindex = layout.addWidget(self._tw)
|
||||
self._tasksindex = 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)
|
||||
self.layout().setCurrentIndex(self._tasksindex)
|
||||
self._folderopen = True
|
||||
|
||||
def _select_task(self, task):
|
||||
logging.debug("Centralwidget: Selected task: %s", task.value)
|
||||
@ -112,7 +110,10 @@ class CentralWidget(QWidget):
|
||||
elif task == Task.CONVERT:
|
||||
self.layout().setCurrentIndex(self._convertindex)
|
||||
else:
|
||||
if self._folderopen:
|
||||
self.layout().setCurrentIndex(self._tasksindex)
|
||||
else:
|
||||
self.layout().setCurrentIndex(self._btnindex)
|
||||
logging.warning("Centralwidget: got invalid task request: %s", task)
|
||||
|
||||
def _on_back(self):
|
||||
@ -137,7 +138,7 @@ def main():
|
||||
from PySide6.QtWidgets import QApplication
|
||||
app = QApplication([])
|
||||
window = QWidget()
|
||||
taskcard = TaskCard("test", "../icons/merge_light.png", "do something with manyt words, too many to fit in one line", Task.CONVERT)
|
||||
taskcard = TaskCard("test", "../icons/merge_light.png", "do something with manyt words, too many to fit in one line")
|
||||
layout = QVBoxLayout()
|
||||
layout.addWidget(taskcard)
|
||||
|
||||
|