一个完整的项目一般都是由多个窗口组成的,此时就需要对多窗口设计有所了解。多窗口即向项目中添加多个窗口,在这些窗口中实现不同的功能。下面对多窗口的建立、启动以及如何关联多个窗口进行讲解。

1  多窗口的建立


多窗口的建立即是向某个项目中添加多个窗口。

实例 创建并打开多窗口

在Qt Designer设计器的菜单栏中,选择文件新建菜单项,弹出新建窗体对话框,选择一个模板,单击创建按钮,如图所示。

Pasted image 20250827151225

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

Pasted image 20250827151427

Info: 说明 在Qt Designer设计器中添加多个窗口后,在保存时,需要分别将鼠标焦点定位到要保存的窗口上,单独为每个窗口进行保存;而在将.ui文件转换为.py文件时,也需要分别选中每个.ui文件,单独进行转换。

2  设置启动窗口


在项目中添加了多个窗口以后,如果要调试程序,必须要设置先运行的窗口,这样就需要设置项目的启动窗口,其实现方法非常简单,只需要按照“运行主窗口”的步骤为要作为启动窗口的相应.py文件添加程序入口即可。例如,要将untitled.pyuntitled.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个窗口,效果如图所示。

Pasted image 20250827152909