PyQt5 调出另外的窗口

写在前面

在网上找了一遍相关的例子,总感觉不够简洁,所以进行了重新总结。

PyQt5 如何调出另外的(自定义)窗口呢?下面给出一个具体的例子:从A窗口中调出B窗口。

定义A窗口

class A(QWidget):

    def __init__(self):

        super().__init__()
        self.initUI()

    def initUI(self):

        self.button = QPushButton('调出另外一个窗口', self)  # 窗口里添加一个按钮
         
        self.setGeometry(200, 200, 300, 300)
        self.button.move(100, 100)
        self.setWindowTitle('A窗口')
        self.show()

定义B窗口

class B(QWidget):

    def __init__(self):

        super().__init__()
        self.initUI()

    def initUI(self):

        self.label = QLabel('这是调出的另外一个窗口', self)  # 添加一个标签

        self.label.move(50, 50)
        self.setGeometry(500, 500, 300, 300)
        self.setWindowTitle('B窗口')

完整的代码

# -*- coding:utf-8 -*-
from PyQt5.QtWidgets import QWidget, QPushButton, QLabel, QApplication
import sys


class A(QWidget):

    def __init__(self):

        super().__init__()
        self.initUI()
        
    def initUI(self):

        self.button = QPushButton('调出另外一个窗口', self)   # 窗口里添加一个按钮
        
        self.setGeometry(200, 200, 300, 300)
        self.button.move(100, 100)
        self.setWindowTitle('A窗口')
        self.show()

    def closeEvent(self, event):

        self.a_close.emit()
        self.close()


class B(QWidget):

    def __init__(self):

        super().__init__()
        self.initUI()

    def initUI(self):

        self.label = QLabel('这是调出的另外一个窗口', self) # 窗口里添加一个标签

        self.label.move(50, 50)
        self.setGeometry(500, 500, 300, 300)
        self.setWindowTitle('B窗口')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    a = A()
    b = B()
    a.button.clicked.connect(b.show)
    sys.exit(app.exec_())

以上代码中

a.button.clicked.connect(b.show)
是将clicked信号连接到b.show上,确保A窗口里的按钮被点击时,调出B窗口。

程序效果

  1. 程序刚启动时,界面如下。
    在这里插入图片描述
  2. 点击A窗口中的按钮,界面如下。
    在这里插入图片描述

写在最后

以上以为A窗口调出B窗口的方法,窗口之间其实还可以又更多的逻辑联系,这里就不做介绍了。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值