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窗口。
- 程序刚启动时,界面如下。
- 点击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()