add ui update

This commit is contained in:
remilia 2025-01-20 17:37:18 +08:00
parent 8887c358d2
commit eb2a316100
3 changed files with 34 additions and 26 deletions

View File

@ -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):

View File

@ -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", "<html><head/><body><p style=\"line-height:0.3\" align=\"center\">Connection</p><p align=\"center\">Status</p></body></html>"))
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"))

View File

@ -48,7 +48,7 @@
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QComboBox" name="comboBox">
<widget class="QComboBox" name="c_playback_seq_name">
<property name="enabled">
<bool>false</bool>
</property>
@ -387,6 +387,9 @@
</item>
<item>
<widget class="QComboBox" name="c_seq_meta">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>Empty</string>
@ -485,7 +488,7 @@
<item>
<widget class="QLineEdit" name="l_base">
<property name="text">
<string>/mnt/16T/private_dataset/us/</string>
<string/>
</property>
</widget>
</item>