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类继承用法实例分析
Oct 10 Python
python访问系统环境变量的方法
Apr 29 Python
Python对数据库操作
Mar 28 Python
解决python3 urllib中urlopen报错的问题
Mar 25 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
Python文件和流(实例讲解)
Sep 12 Python
Python获取当前函数名称方法实例分享
Jan 18 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
python 默认参数相关知识详解
Sep 18 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 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将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
Python类的用法实例浅析
2015/05/27 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python sorted方法和列表使用解析
2019/11/18 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
Django 解决由save方法引发的错误
2020/05/21 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
中式面点餐厅创业计划书
2014/01/29 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
演讲稿格式范文
2014/05/19 职场文书
应急处置方案
2014/06/16 职场文书
无私奉献演讲稿
2014/09/04 职场文书
创新社会管理心得体会
2014/09/12 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang