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窗口的方法,窗口之间其实还可以又更多的逻辑联系,这里就不做介绍了。

导入业务需要的所有的扩展包。 import sys # 系统参数操作 from PyQt5.QtWidgets import * # 模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 from PyQt5.QtCore import * # 此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程 import sys from PyQt5.QtCore import pyqtSignal from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton class FirstWindow(QMainWindow): sig = pyqtSignal()