Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法


Posted in Python onJuly 04, 2019

1.先使用Qt designer设计两个窗口,一个是主窗口,一个是子窗口

 

 

其中主窗口是新建-Main Window,子窗口是Dialog窗体。

  两个窗口不能是同一类型,否则会崩溃。

并保存为EyeTracking_main.uiEyeTracking_process.ui(因为我在做眼动追踪,因此窗体命名与此相关,后同),使用UIC工具转成.py文件。

2.写一个驱动函数调用两个窗体

主窗体Eyetracking_main.py

from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
  def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(954, 530)
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.toolButton = QtWidgets.QToolButton(self.centralwidget)
    self.toolButton.setGeometry(QtCore.QRect(10, 40, 101, 25))   self.toolButton.setObjectName("toolButton")
    ...1234567891011

子窗体Eyetracking_process.py

from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
  def setupUi(self, Dialog):
    Dialog.setObjectName("Dialog")
    Dialog.resize(810, 474)
    self.label_5 = QtWidgets.QLabel(Dialog)
    self.label_5.setGeometry(QtCore.QRect(630, 90, 151, 151))
    self.label_5.setObjectName("label_5")
    self.label_2 = QtWidgets.QLabel(Dialog)
    self.label_2.setGeometry(QtCore.QRect(250, 90, 171, 161))
    self.label_2.setObjectName
("label_2")
        ...12345678910111213

将驱动函数命名为EyeTracking_ui.py

from Eyetracking_main import *
from Eyetracking_process import *
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog
import sys
class parentWindow(QMainWindow):
  def __init__(self):
    QMainWindow.__init__(self)
    self.main_ui = Ui_MainWindow()
    self.main_ui.setupUi(self)
class childWindow(QDialog):
  def __init__(self):
    QDialog.__init__(self)
    self.child=Ui_Dialog()
    self.child.setupUi(self)

if __name__=='__main__':
  app=QApplication(sys.argv)
  window=parentWindow()
  child=childWindow()
  #通过toolButton将两个窗体关联
  btn=window.main_ui.toolButton
  btn.clicked.connect(child.show)
  # 显示
  window.show()
  sys.exit(app.exec_())

因为后续还要在各个窗体操作,因此将主窗口与子窗口各自实例化在parentWindowchildWindow两个类中,这两个类各自继承了QMainWindow和QDialog的父类:

class parentWindow(QMainWindow):
  def __init__(self):
    QMainWindow.__init__(self)#QMainWindow的初始化
    self.main_ui = Ui_MainWindow()#主窗口的实例化
    self.main_ui.setupUi(self)
class childWindow(QDialog):
  def __init__(self):
    QDialog.__init__(self)
    self.child=Ui_Dialog()#子窗口的实例化
    self.child.setupUi(self)

后面分别再把两个窗口实例化给window和child:

window=parentWindow()
child=childWindow()

通过定义按钮意义将两个窗体关联起来:

btn=window.main_ui.toolButton
btn.clicked.connect(child.show)

表示当按钮按下时,子窗口显示。

如下图,当点击“处理眼动数据”,弹出处理处理窗体:

Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法

总结

以上所述是小编给大家介绍的Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python操作MySQL简单实现方法
Jan 26 Python
详解Python程序与服务器连接的WSGI接口
Apr 29 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
Python学习小技巧之利用字典的默认行为
May 20 Python
Python使用gRPC传输协议教程
Oct 16 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python3 集合set入门基础
Feb 10 Python
python Django 反向访问器的外键冲突解决
May 20 Python
python安装后的目录在哪里
Jun 21 Python
python主要用于哪些方向
Jul 05 Python
python析构函数用法及注意事项
Jun 22 Python
Python+opencv 实现图片文字的分割的方法示例
Jul 04 #Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 #Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 #Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 #Python
pandas取出重复数据的方法
Jul 04 #Python
Python使用sklearn实现的各种回归算法示例
Jul 04 #Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 #Python
You might like
PHP中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
第二节--PHP5 的对象模型
2006/11/16 PHP
PHP 图片上传代码
2011/09/13 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
php图像处理类实例
2015/07/28 PHP
dojo 之基础篇
2007/03/24 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
以下的初始化有什么区别
2013/12/16 面试题
历史系毕业生自荐信
2013/10/28 职场文书
论文指导教师评语
2014/04/28 职场文书
初中教师业务学习材料
2014/05/12 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
辞职信如何写
2015/02/27 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
python多线程方法详解
2022/01/18 Python
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL