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 将字符串转换成字典dict
Mar 24 Python
pytyon 带有重复的全排列
Aug 13 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 Python
python实现把两个二维array叠加成三维array示例
Nov 29 Python
基于python3的socket聊天编程
Feb 17 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
python语言实现贪吃蛇游戏
Nov 13 Python
Django多个app urls配置代码实例
Nov 26 Python
python 用opencv实现霍夫线变换
Nov 27 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
模拟flock实现文件锁定
2007/02/14 PHP
php写的简易聊天室代码
2011/06/04 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
为原生js Array增加each方法
2012/04/07 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
如何使用python代码操作git代码
2020/02/29 Python
python新手学习使用库
2020/06/11 Python
浅谈Python中的继承
2020/06/19 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
初中校园之声广播稿
2014/01/15 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python