Python3.x+Pyqt5实现主窗体里pushButton按钮驱动分割器QSplitter动态载入多个子窗体,而且第3个子窗体还实现了界面与业务逻辑分离

1、代码下载地址:https://download.csdn.net/download/higher80/10580583

2、用到的主要工具:pyqt或者qt的QSplitter工具。

3、实现的主要功能:

(1)动态载入多个子窗体,如下图1-3。点击下图1-3红框里的按钮就可以动态载入不同的子窗体。

                                                                                    图1

                                                                                         图2

                                                                                       图3

(2)实现了动态载入子窗体时界面与业务逻辑分离,见下图4;图中,在红框1里输入字符,点击红框2就可以删除字符。

                                                                                       图4

4、注意事项:

(1)在上面1里提供的下载代码里,注意要修改由代码器生成的代码,比如要修改 ChildrenForm.ui、ChildrenForm2.ui 和 ChildrenForm3.ui 生成的类的名称,避免重复!

(2)上面1里下载的代码里面有三个主程序,分别是 mainfile.py、mainfile2.py 和 mainfile3.py,它们都是可以运行的。但是,mainfile.py 运行后切换窗体时,子窗体里输入的参数在切换窗体后会消失,原因是程序每次会重载新的子窗体;mainfile2.py 用隐藏子窗体的方法实现了保留子窗体输入的参数,但在载入子窗体(即取消隐藏,显示子窗体),子窗体的窗口大小会变化,难看;mainfile3.py 实现了保留子窗体输入参数,且切换窗体时子窗体的窗口大小几乎无变化,实现的思路是在程序启动时就初始化全部需要切换的子窗体(应该是提前放到了内存里)。程序主文件用 mainfile3.py!

(3)修改 ChildrenForm.ui、ChildrenForm2.ui 和 ChildrenForm3.ui 生成的窗体的初始大小,修改为一致的大小;这样在主窗体主窗体动态载入子窗体时才会保持子窗体大小的一致性,即软件界面保持稳定。

在Python 3.x和PyQt5中,我们可以使用QMainWindow以及QSplitter实现窗体中的动态窗体载入。 首先,我们需要引入PyQt5的相关模块: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QSplitter ``` 接下来,需要定义一个功能MainWindow,继承自QMainWindow,并在初始化方法中设置窗体的布局和属性方法。 ```python class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): splitter = QSplitter(self) self.setCentralWidget(splitter) self.setWindowTitle("Dynamic Sub Windows") self.setGeometry(100, 100, 800, 600) ``` 在initUI方法中,我们创建了一个QSplitter对象,并将其设置为窗体的中央部件(setCentralWidget)。然后,我们设置了窗体的标题(setWindowTitle)以及位置和大小(setGeometry)。 接下来,我们需要实现个子窗体SubWindow,继承自QWidget,并在其中定义窗体的布局和属性方法。 ```python class SubWindow(QWidget): def __init__(self, parent=None): super().__init__(parent) self.initUI() def initUI(self): self.setWindowTitle("Sub Window") ``` 在initUI方法中,我们设置了窗体的标题。 最后,我们在函数中创建QApplication对象,以及MainWindow和SubWindow对象,并将SubWindow对象添加到QSplitter对象中。 ```python if __name__ == "__main__": app = QApplication([]) mainWindow = MainWindow() subWindow = SubWindow() mainWindow.centralWidget().addWidget(subWindow) mainWindow.show() app.exec_() ``` 在函数中,我们首先创建了一个QApplication对象,然后创建了MainWindow对象。接着,我们创建了SubWindow对象,并将其添加到QSplitter对象中。最后,通过show方法显示窗体,然后调用app.exec_()方法启动应用程序的事件循环。 通过以上步骤,我们就可以实现一个窗体动态载入窗体的应用程序。在运行程序后,我们可以在窗体中看到一个可以分割的窗体,并在其中展示了一个子窗体,并且可以根据需要调整窗体的大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值