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 web框架学习笔记
May 03 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
Sanic框架请求与响应实例分析
Jul 16 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
pymysql 开启调试模式的实现
Sep 24 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
解决Python使用列表副本的问题
Dec 19 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
AUC计算方法与Python实现代码
Feb 28 Python
Django实现图片上传功能步骤解析
Apr 22 Python
python 实现一个图形界面的汇率计算器
Nov 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
PHP5 面向对象程序设计
2008/02/13 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
php中rename函数用法分析
2014/11/15 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
php导出生成word的方法
2015/12/25 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
js获取域名的方法
2015/01/27 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
网站设计师的岗位职责
2013/11/21 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
初二生物教学反思
2014/02/03 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
会计自荐信范文
2014/03/09 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
教师党员自我评价2015
2015/03/04 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书