作者:看那个码农
公众号:看那个码农
1.项目简介
基于Python3.x,使用PyQt5制作多窗口GUI的demo
2.项目准备
- Python3.x
- PyQt5
- Pycharm
3.项目流程
1.在Pycharm中打开Qt Designer
2. 利用Qt Designer中设计GUI窗口
3.选择Main Window,拖动QPushButton创建一个Ui
4.保存至项目目录
5.重复以上步骤,再重复创建3个UI
最后得到4个UI界面
6.将UI文件转换为Python代码
得到4个UI对应的Python代码文件
将UI 1做为其它3个UI的启动窗口
在UI 1对应的fir.py文件中添加下列代码
if __name__=='__main__':
app=QtWidgets.QApplication(sys.argv)
MainWindow=QtWidgets.QMainWindow()
ui=Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
可正常运行代码:
显示结果:
7.窗口之间的关联
我们将刚刚的窗口创建好了后,将UI 1作为主窗口,将UI 2,3,4作为子窗口,实现UI 1对UI 2,3,4的调用
由于UI 2,3,4对应的
- sec.py,
- thi.py,
- fort.py
自动转换后的代码中,默认继承自object类
为了执行窗口操作,需要将继承的object类修改为QMainWindows类,
由于QMainWindows类位于PyQt5.QtWidgets模块中,
因此需要在
- sec.py
- thi.py
- fort.py
中进行导入,修改后的代码为
修改完sec.py,thi.py,fort.py文件的继承类后,
需要在fir.py文件中定义一个槽函数,用来使用
QMainWindows对象的show()方法,
用于打开UI 2,3,4 这3个子窗口
def open(self):
self.second=sec.Ui_MainWindow()
self.second.show()
self.third=thi.Ui_MainWindow()
self.third.show()
self.fouth=fort.Ui_MainWindow()
self.fouth.show()
同时在fir.py文件中连接信号槽函数
self.pushButton.clicked.connect(self.open)
8.运行程序
点击打开按钮,出现三个新的小窗口
4.项目思考
该小项目利用PyQt5制作简易的GUI界面,同时基于Qt的信号槽函数机制实现了按钮信号的槽函数响应,成功实现多窗口关联。
适合新手尝试学习PyQt5。
5.项目收获
- 新手应注意import后不能出现数字,如import 2,这样的导入方式是不正确的
- 新手应注意需要在子窗口程序中,将继承的object类修改为QMainWindow类。
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情