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项目发布为exe可执行程序过程分享
Oct 23 Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
python pandas库的安装和创建
Jan 10 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
Python 离线工作环境搭建的方法步骤
Jul 29 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 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防注入,表单提交值转义的实现详解
2013/06/10 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
Python实现自动登录百度空间的方法
2017/06/10 Python
python实现二叉树的遍历
2017/12/11 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
python使用插值法画出平滑曲线
2018/12/15 Python
Python 日期与时间转换的方法
2020/08/01 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
银行会计财务工作个人的自我评价
2013/10/29 职场文书
英语文学专业学生的自我评价
2013/10/31 职场文书
打架检讨书400字
2014/01/17 职场文书
违纪检讨书2000字
2014/02/08 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
广告语设计及教案
2014/03/21 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python