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程序中实现分布式进程的教程
Apr 28 Python
使用Python保存网页上的图片或者保存页面为截图
Mar 05 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python中查看文件名和文件路径
Mar 31 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
python列表的逆序遍历实现
Apr 20 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
利用Python实现Picgo图床工具
Nov 23 Python
Python使用DFA算法过滤内容敏感词
Apr 22 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
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
php实现通过ftp上传文件
2015/06/19 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
PHP实现简易图形计算器
2020/08/28 PHP
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
Python高斯消除矩阵
2019/01/02 Python
python Canny边缘检测算法的实现
2020/04/24 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
linux比较文件内容的命令是什么
2013/03/04 面试题
一名毕业生的自我鉴定
2013/12/04 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
离婚被告答辩状
2015/05/22 职场文书
新年寄语2016
2015/08/17 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
Python中的socket网络模块介绍
2022/07/23 Python