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正则表达式match和search用法实例
Mar 26 Python
python动态参数用法实例分析
May 25 Python
python使用pymysql实现操作mysql
Sep 13 Python
git进行版本控制心得详谈
Dec 10 Python
python学生管理系统代码实现
Apr 05 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
python推导式的使用方法实例
Feb 28 Python
一行Python命令实现批量加水印
Apr 07 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取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
js循环改变div颜色具体方法
2013/06/25 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
理解JavaScript原型链
2016/10/25 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
微信小程序 上传头像的实例详解
2017/10/27 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
Python内建数据结构详解
2016/02/03 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
遗传算法之Python实现代码
2017/10/10 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
详解Python发送email的三种方式
2018/10/18 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
python多线程并发实例及其优化
2019/06/27 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
Ruby如何定义一个类
2012/10/08 面试题
证婚人经典证婚词
2014/01/09 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
2015年安全月活动总结
2015/03/26 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python