【Python】Pyqt5 主窗口调用子窗口demo

1 篇文章 0 订阅

背景:
通过主窗口的按钮调用其对应的窗口,代码比较简单,直接看,不懂的欢迎留言;
一共两个代码:
ui_first.py :实现的是主窗口
ui_second.py:实现的是子窗口

点击开始按钮调用子窗口,点击关闭退出窗口;

ui_first.py

import sys
import os
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QHBoxLayout
from .ui_sencond import UiMainTwo
from PyQt5.QtCore import Qt


class UiMain(QWidget):
    def __init__(self, parent=None):
        super(UiMain, self).__init__(parent)

        self.setWindowTitle('main_wsw')
        self.resize(400, 200)
        self.initUI()

    def initUI(self):
        layout = QHBoxLayout()
        self.start = QPushButton("开始")
        self.start.clicked.connect(self.action_b)
        layout.addWidget(self.start)

        self.end = QPushButton("结束")
        self.end.clicked.connect(self.close)
        layout.addWidget(self.end)
        layout.addStretch()
        self.setLayout(layout)

    def action_b(self):
        self.ui_2 = UiMainTwo()
        self.ui_2.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = UiMain()
    main.show()
    sys.exit(app.exec_())

ui_second.py

import sys
import os
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QMenu, \
    QSizePolicy, QVBoxLayout, QHBoxLayout, QLabel


class UiMainTwo(QWidget):
    def __init__(self, parent=None):
        super(UiMainTwo, self).__init__(parent)
        self.setWindowTitle('second_wsw')
        self.resize(300, 200)
        self.move(800, 400)
        self.initUI2()

    def initUI2(self):
        layout = QVBoxLayout()
        self.label1 = QLabel('label1: hi i am wsw', self)
        layout.addWidget(self.label1)

        self.label2 = QLabel('label2: hi all ...', self)
        layout.addWidget(self.label2)
        layout.addStretch()

        self.label3 = QLabel('label3: hi all ...', self)
        layout.addWidget(self.label3)

        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = UiMainTwo()
    sys.exit(app.exec_())

在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
类似于使用Tkinter创建GUI窗口,使用PyQt也可以很容易地创建窗口。下面是一个简单的示例代码,可以创建一个窗口并使用zmq发送和接收消息: ```python import sys import zmq from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton class MyWindow(QMainWindow): def __init__(self): super().__init__() # 创建一个按钮,并在点击时发送消息 button = QPushButton("Send Message", self) button.setGeometry(50, 50, 100, 50) button.clicked.connect(self.send_message) # 设置窗口大小和标题 self.setGeometry(300, 300, 200, 150) self.setWindowTitle('ZMQ Demo') def send_message(self): context = zmq.Context() socket = context.socket(zmq.REQ) socket.connect("tcp://localhost:5555") message = "Hello, World!" socket.send(message.encode()) response = socket.recv() print("Received response: %s" % response) if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_()) ``` 在这个示例中,我们创建了一个继承自QMainWindow的MyWindow类。在MyWindow的构造函数中,我们创建了一个按钮,并在点击时调用send_message()方法发送消息。在send_message()方法中,我们创建了一个ZMQ上下文和套接字,然后连接到一个本地TCP端口。我们发送一个“Hello, World!”消息,等待接收器的响应,并在控制台上打印响应消息。 同样,你需要在运行这段代码之前确保有一个ZMQ接收器正在监听本地TCP端口5555。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔都吴所谓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值