一个完整的项目一般都是由多个窗口组成的,此时就需要对多窗口设计有所了解。多窗口即向项目中添加多个窗口,在这些窗口中实现不同的功能。下面对多窗口的建立、启动以及如何关联多个窗口进行讲解。
1 多窗口的建立
多窗口的建立即是向某个项目中添加多个窗口。
实例 创建并打开多窗口
在Qt Designer设计器的菜单栏中,选择文件→新建菜单项,弹出新建窗体对话框,选择一个模板,单击创建按钮,如图所示。

重复执行以上步骤,即可添加多个窗口,例如,向项目中添加4个窗口的效果如图所示。

Info: 说明 在Qt Designer设计器中添加多个窗口后,在保存时,需要分别将鼠标焦点定位到要保存的窗口上,单独为每个窗口进行保存;而在将
.ui文件转换为.py文件时,也需要分别选中每个.ui文件,单独进行转换。
2 设置启动窗口
在项目中添加了多个窗口以后,如果要调试程序,必须要设置先运行的窗口,这样就需要设置项目的启动窗口,其实现方法非常简单,只需要按照“运行主窗口”的步骤为要作为启动窗口的相应.py文件添加程序入口即可。例如,要将untitled.py(untitled.ui文件对应的代码文件)作为启动窗口,则在untitled.py文件中添加如下代码:
import sys
# 程序入口,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
ui = Ui_MainWindow() # 创建PyQt设计的窗体对象
ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置
MainWindow.show() # 显示窗体
sys.exit(app.exec_()) # 程序关闭时退出进程
3 窗口之间的关联
在多窗口创建完成后,需要将各个窗口进行关联,然后才可以形成一个完整的项目。这里以在启动窗口中打开另外3个窗口为例进行讲解。
首先看一下untitled2.py文件、untitled3.py文件和untitled4.py文件,在自动转换后的代码中,默认继承自object类,代码如下:
class Ui_MainWindow(object):
为了执行窗口操作,需要将继承的object类修改为QMainWindow类,由于QMainWindow类位于PyQt5.QtWidgets模块中,因此需要进行导入,修改后的代码如下:
from PyQt5.QtWidgets import QMainWindow
class Ui_MainWindow(QMainWindow):
修改完untitled2.py文件、untitled3.py文件和untitled4.py文件的继承类之后,打开untitled.py主窗口文件,在该文件中,首先定义一个槽函数,用来使用QMainWindow对象的show()方法打开3个窗口,代码如下:
def open(self):
import untitled2, untitled3, untitled4
self.second = untitled2.Ui_MainWindow() # 创建第2个窗体对象
self.second.show() # 显示窗体
self.third = untitled3.Ui_MainWindow() # 创建第3个窗体对象
self.third.show() # 显示窗体
self.fouth = untitled4.Ui_MainWindow() # 创建第4个窗体对象
self.fouth.show() # 显示窗体
然后将PushButton按钮的clicked()信号与自定义的槽函数open()相关联,代码如下:
self.pushButton.clicked.connect(self.open)
运行untitled.py主窗口,单击打开按钮,即可打开其他3个窗口,效果如图所示。
