欢迎访问宙启技术站
智能推送

PyQt4.Qt中的多窗口应用设计

发布时间:2023-12-28 09:36:25

在PyQt4.Qt中,可以通过创建多个窗口来设计多窗口应用程序。下面是一个简单的使用例子:

import sys
from PyQt4 import QtGui, QtCore

class Window1(QtGui.QWidget):
    def __init__(self):
        super(Window1, self).__init__()
        self.setGeometry(100, 100, 300, 200)  # 设置窗口位置和大小
        self.setWindowTitle("Window 1")  # 设置窗口标题
        
        self.button = QtGui.QPushButton("Open Window 2", self)  # 创建一个按钮
        self.button.clicked.connect(self open_window2)  # 当按钮被点击时,调用open_window2函数
        self.button.setGeometry(QtCore.QRect(100, 100, 100, 30))  # 设置按钮位置和大小
    
    def open_window2(self):
        self.window2 = Window2()  # 创建Window2窗口实例
        self.window2.show()  # 显示Window2窗口


class Window2(QtGui.QWidget):
    def __init__(self):
        super(Window2, self).__init__()
        self.setGeometry(500, 100, 300, 200)  # 设置窗口位置和大小
        self.setWindowTitle("Window 2")  # 设置窗口标题
        
        self.button = QtGui.QPushButton("Close", self)  # 创建一个按钮
        self.button.clicked.connect(self.close)  # 当按钮被点击时,关闭窗口
        self.button.setGeometry(QtCore.QRect(100, 100, 100, 30))  # 设置按钮位置和大小


def main():
    app = QtGui.QApplication(sys.argv)
    window1 = Window1()  # 创建Window1窗口实例
    window1.show()  # 显示Window1窗口
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

在这个例子中,创建了两个窗口:Window1和Window2。Window1窗口中有一个按钮,点击按钮会打开Window2窗口。Window2窗口中有一个按钮,点击按钮会关闭窗口。

通过继承QtGui.QWidget类,可以创建自定义的窗口类。在初始化函数中,可以设置窗口的位置和大小,以及其他的窗口属性,例如标题等。

在Window1类中,通过QtGui.QPushButton创建了一个按钮,并且通过clicked信号与open_window2函数连接起来。当按钮被点击时,会调用open_window2函数。

open_window2函数中,创建了Window2窗口实例,并且通过show函数显示出来。

类似地,在Window2类中,也创建了一个按钮,并且通过clicked信号与close函数连接起来。当按钮被点击时,会触发close函数,从而关闭窗口。

最后,在main函数中,创建了一个QApplication实例并启动应用程序的事件循环。

以上例子演示了如何在PyQt4.Qt中设计一个多窗口应用程序,实现窗口的打开和关闭操作。当然,根据实际需求,还可以增加更多的窗口和功能。