From eb2a316100ed420e1520c65f190fd4e09ea1c03e Mon Sep 17 00:00:00 2001 From: remilia Date: Mon, 20 Jan 2025 17:37:18 +0800 Subject: [PATCH] add ui update --- src/nodes/MainUI.py | 36 ++++++++++++++++++++---------------- src/ui/Main.py | 17 +++++++++-------- src/ui/Main.ui | 7 +++++-- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/src/nodes/MainUI.py b/src/nodes/MainUI.py index a95e136..27fb5b1 100644 --- a/src/nodes/MainUI.py +++ b/src/nodes/MainUI.py @@ -8,6 +8,7 @@ from PyQt6.QtWidgets import QMainWindow, QApplication, QFrame from Main import Ui_MainWindow from ZMQReceiver import ZMQReceiver +from config import DS from nodes.Node import Node from utils.Msg import KillMsg, Msg, ImageArgMsg, SelectSeqMsg, SeqIdMinMax, MoveAxisMsg, SeqListMsg, SetBaseMsg, \ SeqMetaMsg, SetPlayMode, DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, SetDeviceEnabledMsg, \ @@ -31,7 +32,7 @@ class Adv(QMainWindow, Ui_MainWindow): zmq_receiver.start() self.s_t_start.valueChanged.connect(self.on_t_start) self.s_t_end.valueChanged.connect(self.on_t_end) - self.comboBox.currentIndexChanged.connect(self.cbc) + self.c_playback_seq_name.currentIndexChanged.connect(self.cbc) self.s_sid.valueChanged.connect(self.c_sid) self.arg = ImageArgMsg('ui', t_start=0, t_end=1499) self.b_base.clicked.connect(lambda: self.p.send(SetBaseMsg(self.l_base.text()))) @@ -45,28 +46,35 @@ class Adv(QMainWindow, Ui_MainWindow): # self.b_device_enabled.clicked.connect(lambda: self.p.send(SetDeviceEnabledMsg(not self.device_enabled))) # self.b_device_connected.clicked.connect(lambda: self.p.send(SetDeviceConnectedMsg(not self.device_connected))) self.c_seq_meta.currentIndexChanged.connect(self.on_m) + self.l_base.setText(DS.__str__()) def set_device_connection(self, status: LinkStatus): match status: case LinkStatus.RED: + self.device_connected = False + self.c_seq_meta.setEnabled(False) self.lb_device_connection.setText('Disconnected') self.lb_device_connection.setStyleSheet('background-color: pink;') case LinkStatus.YELLOW: self.lb_device_connection.setText('Waiting') self.lb_device_connection.setStyleSheet('background-color: yellow;') case LinkStatus.GREEN: + self.device_connected = True + self.c_seq_meta.setEnabled(True) self.lb_device_connection.setText('Connected') self.lb_device_connection.setStyleSheet('background-color: LightGreen;') def set_device_enable(self, status: LinkStatus): match status: case LinkStatus.RED: + self.device_enabled = False self.lb_device_enable.setText('Disabled') self.lb_device_enable.setStyleSheet('background-color: pink;') case LinkStatus.YELLOW: self.lb_device_enable.setText('Waiting') self.lb_device_enable.setStyleSheet('background-color: yellow;') case LinkStatus.GREEN: + self.device_enabled = True self.lb_device_enable.setText('Enabled') self.lb_device_enable.setStyleSheet('background-color: LightGreen;') @@ -77,16 +85,16 @@ class Adv(QMainWindow, Ui_MainWindow): self.l_record_commit.setEnabled(True) self.p.send(SeqMetaMsg(self.c_seq_meta.itemText(self.c_seq_meta.currentIndex()))) self.p.send(SetPlayMode('live')) - self.comboBox.setEnabled(False) + self.c_playback_seq_name.setEnabled(False) def on_play_playback(self): self.b_play_live.setStyleSheet('') self.b_play_playback.setStyleSheet('background-color: red;') self.b_record.setEnabled(False) self.l_record_commit.setEnabled(False) - self.p.send(SeqMetaMsg(self.comboBox.itemText(self.comboBox.currentIndex()))) + self.p.send(SeqMetaMsg(self.c_playback_seq_name.itemText(self.c_playback_seq_name.currentIndex()))) self.p.send(SetPlayMode('playback')) - self.comboBox.setEnabled(True) + self.c_playback_seq_name.setEnabled(True) def on_device_disable(self): self.p.send(SetDeviceEnabledMsg(False)) @@ -184,31 +192,27 @@ class Adv(QMainWindow, Ui_MainWindow): self.s_sid.setMaximum(msg.max) self.s_sid.setValue(msg.min) elif isinstance(msg, SeqListMsg): - self.comboBox.setEnabled(True) - self.comboBox.clear() + self.c_playback_seq_name.setEnabled(True) + self.c_playback_seq_name.clear() for name in msg.value: - self.comboBox.addItem(name) - self.p.send(SelectSeqMsg(self.comboBox.itemText(self.comboBox.currentIndex()))) - self.b_play_playback.setEnabled(True) + self.c_playback_seq_name.addItem(name) + if msg.value.__len__() > 0: + self.p.send(SelectSeqMsg(self.c_playback_seq_name.itemText(self.c_playback_seq_name.currentIndex()))) + self.b_play_playback.setEnabled(True) elif isinstance(msg, SeqMetaMsg): self.seq_meta = RfSequenceMeta.from_name(msg.s) self.s_t_start.setMaximum(max(self.seq_meta.shape)) self.s_t_end.setMaximum(max(self.seq_meta.shape)) elif isinstance(msg, DeviceConnectedMsg): if msg.value: - self.device_connected = True self.set_device_connection(LinkStatus.GREEN) else: - self.device_connected = False self.set_device_connection(LinkStatus.RED) - self.update_device_buttons() elif isinstance(msg, DeviceEnabledMsg): if msg.value: - self.device_enabled = True self.set_device_enable(LinkStatus.GREEN) else: - self.device_enabled = False self.set_device_enable(LinkStatus.RED) self.update_device_buttons() elif isinstance(msg, DeviceOnlineMsg): @@ -244,8 +248,8 @@ class Adv(QMainWindow, Ui_MainWindow): @QtCore.pyqtSlot(int) def cbc(self, v): - if self.comboBox.sender() is None or isinstance(self.comboBox.sender(), QFrame): - self.p.send(SelectSeqMsg(self.comboBox.itemText(v))) + if self.c_playback_seq_name.sender() is None or isinstance(self.c_playback_seq_name.sender(), QFrame): + self.p.send(SelectSeqMsg(self.c_playback_seq_name.itemText(v))) @QtCore.pyqtSlot(int) def c_sid(self, v): diff --git a/src/ui/Main.py b/src/ui/Main.py index df2801d..63f8e5d 100644 --- a/src/ui/Main.py +++ b/src/ui/Main.py @@ -34,12 +34,12 @@ class Ui_MainWindow(object): self.b_play_playback.setStyleSheet("background-color : red") self.b_play_playback.setObjectName("b_play_playback") self.gridLayout_7.addWidget(self.b_play_playback, 0, 0, 1, 3) - self.comboBox = QtWidgets.QComboBox(parent=self.centralwidget) - self.comboBox.setEnabled(False) - self.comboBox.setEditable(False) - self.comboBox.setObjectName("comboBox") - self.comboBox.addItem("") - self.gridLayout_7.addWidget(self.comboBox, 1, 1, 1, 2) + self.c_playback_seq_name = QtWidgets.QComboBox(parent=self.centralwidget) + self.c_playback_seq_name.setEnabled(False) + self.c_playback_seq_name.setEditable(False) + self.c_playback_seq_name.setObjectName("c_playback_seq_name") + self.c_playback_seq_name.addItem("") + self.gridLayout_7.addWidget(self.c_playback_seq_name, 1, 1, 1, 2) self.label_16 = QtWidgets.QLabel(parent=self.centralwidget) self.label_16.setObjectName("label_16") self.gridLayout_7.addWidget(self.label_16, 1, 0, 1, 1) @@ -212,6 +212,7 @@ class Ui_MainWindow(object): self.label_20.setObjectName("label_20") self.horizontalLayout.addWidget(self.label_20) self.c_seq_meta = QtWidgets.QComboBox(parent=self.centralwidget) + self.c_seq_meta.setEnabled(False) self.c_seq_meta.setObjectName("c_seq_meta") self.c_seq_meta.addItem("") self.horizontalLayout.addWidget(self.c_seq_meta) @@ -257,6 +258,7 @@ class Ui_MainWindow(object): self.label.setObjectName("label") self.horizontalLayout_4.addWidget(self.label) self.l_base = QtWidgets.QLineEdit(parent=self.centralwidget) + self.l_base.setText("") self.l_base.setObjectName("l_base") self.horizontalLayout_4.addWidget(self.l_base) self.b_base = QtWidgets.QPushButton(parent=self.centralwidget) @@ -312,7 +314,7 @@ class Ui_MainWindow(object): MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.label_4.setText(_translate("MainWindow", "Frame ID")) self.b_play_playback.setText(_translate("MainWindow", "Playback")) - self.comboBox.setItemText(0, _translate("MainWindow", "Unset")) + self.c_playback_seq_name.setItemText(0, _translate("MainWindow", "Unset")) self.label_16.setText(_translate("MainWindow", "SeqName")) self.b_record.setText(_translate("MainWindow", "Record")) self.label_17.setText(_translate("MainWindow", "RecordName")) @@ -341,7 +343,6 @@ class Ui_MainWindow(object): self.lb_device_enable.setText(_translate("MainWindow", "Disabled")) self.label_21.setText(_translate("MainWindow", "

Connection

Status

")) self.label.setText(_translate("MainWindow", "Base Path")) - self.l_base.setText(_translate("MainWindow", "/mnt/16T/private_dataset/us/")) self.b_base.setText(_translate("MainWindow", "Open")) self.l_robot_pos.setText(_translate("MainWindow", "0,0,0,0,0,0")) self.l_robot_force.setText(_translate("MainWindow", "0,0,0,0,0,0")) diff --git a/src/ui/Main.ui b/src/ui/Main.ui index f4f238f..d162ef4 100644 --- a/src/ui/Main.ui +++ b/src/ui/Main.ui @@ -48,7 +48,7 @@ - + false @@ -387,6 +387,9 @@ + + false + Empty @@ -485,7 +488,7 @@ - /mnt/16T/private_dataset/us/ +