pyqt 新建一个窗口,用zmq广播发送消息
时间: 2024-01-06 07:27:24 浏览: 155
使用ZMQ的PUB-SUB模式可以方便地实现广播消息的发送和接收。下面是一个示例代码,可以创建一个PyQt窗口并使用ZMQ PUB套接字广播消息:
```python
import sys
import zmq
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个按钮,并在点击时发送广播消息
button = QPushButton("Send Broadcast Message", self)
button.setGeometry(50, 50, 200, 50)
button.clicked.connect(self.send_broadcast_message)
# 设置窗口大小和标题
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('ZMQ Demo')
def send_broadcast_message(self):
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5555")
message = "Hello, World!"
socket.send(message.encode())
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个继承自QMainWindow的MyWindow类。在MyWindow的构造函数中,我们创建了一个按钮,并在点击时调用send_broadcast_message()方法发送广播消息。在send_broadcast_message()方法中,我们创建了一个ZMQ上下文和套接字,然后将套接字绑定到本地TCP端口5555。我们发送一个“Hello, World!”消息,这个消息会被所有订阅了这个端口的接收器接收到。
你需要在运行这段代码之前确认已经有至少一个ZMQ订阅器正在监听本地TCP端口5555。
阅读全文