flandre/src/nodes/MainUI.py

53 lines
1.4 KiB
Python
Raw Normal View History

2025-01-06 11:21:04 +08:00
import sys
import numpy as np
import zmq
from PyQt6 import QtCore
from PyQt6.QtCore import QByteArray
from PyQt6.QtWidgets import QMainWindow, QApplication
from Main import Ui_MainWindow
from RfFile import RfFolder
from Msg import StrMsg, MoveAxisMsg, KillMsg, Msg, ImageArgMsg
from ZMQReceiver import ZMQReceiver
from nodes.Node import Node
class Adv(QMainWindow, Ui_MainWindow):
def __init__(self, p: Node, parent=None):
super(Adv, self).__init__(parent)
self.p = p
self.setupUi(self)
zmq_receiver = ZMQReceiver(self)
zmq_receiver.zmq_event.connect(self.on_zmq_event)
zmq_receiver.start()
self.horizontalSlider.valueChanged.connect(self.vc)
def on_zmq_event(self, msg: QByteArray):
msg = Msg.decode_msg(msg.data())
if isinstance(msg, KillMsg):
if msg.name == '':
self.close()
elif isinstance(msg, ImageArgMsg):
self.horizontalSlider.setValue(msg.v1)
@QtCore.pyqtSlot(int)
def vc(self, v):
if self.horizontalSlider.sender() is None:
self.p.send(ImageArgMsg('ui', v))
class MainUI(Node):
topics = [ImageArgMsg]
def __init__(self):
super().__init__()
def loop(self):
app = QApplication(sys.argv)
MainWindow = Adv(self)
# MainWindow.move(int(px), int(py))
# MainWindow.resize(int(sx), int(sy))
MainWindow.show()
app.exec()