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 相关文章推荐
tornado框架blog模块分析与使用
Nov 21 Python
python新手经常遇到的17个错误分析
Jul 30 Python
使用Python制作获取网站目录的图形化程序
May 04 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
python先序遍历二叉树问题
Nov 10 Python
python微信公众号开发简单流程
Mar 23 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
Python实现的个人所得税计算器示例
Jun 01 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
利用Python实现Json序列化库的方法步骤
Sep 09 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中多线程的两个实现方法
2016/10/14 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
python利用opencv实现颜色检测
2021/02/23 Python
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
应届专科生个人的自我评价
2014/01/05 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
教师简历自我评价
2014/02/03 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
志愿者宣传口号
2014/06/17 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
初中家长评语大全
2014/12/26 职场文书
高三语文复习计划
2015/01/19 职场文书
热血教师观后感
2015/06/10 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
MySQL表的增删改查(基础)
2021/04/05 MySQL
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL