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()