[centralwidget] new task card widget
This commit is contained in:
parent
320a47976a
commit
778b929fe7
@ -1,14 +1,49 @@
|
||||
import logging
|
||||
|
||||
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy, QHBoxLayout, QPushButton
|
||||
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy, QHBoxLayout, QPushButton, QLabel, QVBoxLayout, QGridLayout
|
||||
from PySide6.QtCore import Qt, QSize
|
||||
from PySide6.QtGui import QIcon
|
||||
from PySide6.QtGui import QIcon, QFont, QImage, QPixmap
|
||||
|
||||
from fixtracks.widgets.tracks import FixTracks
|
||||
from fixtracks.widgets.detectionmerge import MergeDetections
|
||||
from fixtracks.widgets.taskwidget import TasksWidget, Task
|
||||
from fixtracks.widgets.converter import Json2PandasConverter
|
||||
|
||||
class TaskCard(QWidget):
|
||||
|
||||
def __init__(self, name, icon, description, taks, parent=None):
|
||||
super().__init__(parent)
|
||||
self.setMaximumSize(300, 150)
|
||||
# self.setStyleSheet("background-color: gray;")
|
||||
font = QFont()
|
||||
font.setBold(True)
|
||||
font.setPointSize(14)
|
||||
|
||||
name_label = QLabel(name)
|
||||
name_label.setFont(font)
|
||||
description_label = QLabel(description)
|
||||
description_label.setLineWidth(100)
|
||||
icon_label = QLabel()
|
||||
icon_label.setFixedSize(128, 128)
|
||||
pixmap = QPixmap.fromImage(QImage(icon))
|
||||
scaled_pixmap = pixmap.scaled(icon_label.size(), Qt.AspectRatioMode.KeepAspectRatio, Qt.TransformationMode.SmoothTransformation)
|
||||
icon_label.setPixmap(scaled_pixmap)
|
||||
|
||||
hbox = QHBoxLayout()
|
||||
hbox.addWidget(icon_label)
|
||||
hbox.addWidget(description_label)
|
||||
|
||||
|
||||
lyt = QVBoxLayout()
|
||||
lyt.addWidget(name_label)
|
||||
lyt.addLayout(hbox)
|
||||
self.setLayout(lyt)
|
||||
|
||||
# trackBtn.clicked.connect(lambda: self._select_task(track))
|
||||
|
||||
|
||||
|
||||
|
||||
class CentralWidget(QWidget):
|
||||
|
||||
def __init__(self, darkmode, parent=None):
|
||||
@ -28,11 +63,12 @@ class CentralWidget(QWidget):
|
||||
self._trackwidget = FixTracks(self)
|
||||
self._trackwidget.back.connect(self._on_back)
|
||||
|
||||
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.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)
|
||||
@ -45,14 +81,13 @@ class CentralWidget(QWidget):
|
||||
trackBtn.setToolTip("Fix tracking of individuals, reassign track ids.")
|
||||
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)
|
||||
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)
|
||||
taskgrid = QWidget()
|
||||
taskgrid.setMaximumWidth(1000)
|
||||
taskgrid.setLayout(btnlyt)
|
||||
taskgrid.setLayout(grid)
|
||||
|
||||
layout = QStackedLayout()
|
||||
layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
@ -98,3 +133,17 @@ class CentralWidget(QWidget):
|
||||
# # @Slot(None)
|
||||
# def on_new(self):
|
||||
# self._view.setScene(self._gamescene)
|
||||
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)
|
||||
layout = QVBoxLayout()
|
||||
layout.addWidget(taskcard)
|
||||
|
||||
window.setLayout(layout)
|
||||
window.show()
|
||||
app.exec()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user