时间:2021-05-22
1.先使用Qt designer设计两个窗口,一个是主窗口,一个是子窗口
其中主窗口是新建-Main Window,子窗口是Dialog窗体。
两个窗口不能是同一类型,否则会崩溃。
并保存为EyeTracking_main.ui和EyeTracking_process.ui(因为我在做眼动追踪,因此窗体命名与此相关,后同),使用UIC工具转成.py文件。
2.写一个驱动函数调用两个窗体
主窗体Eyetracking_main.py
from PyQt5 import QtCore, QtGui, QtWidgetsclass 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, QtWidgetsclass 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")将驱动函数命名为EyeTracking_ui.py
from Eyetracking_main import *from Eyetracking_process import *from PyQt5.QtWidgets import QApplication,QMainWindow,QDialogimport sysclass 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_())因为后续还要在各个窗体操作,因此将主窗口与子窗口各自实例化在parentWindow和childWindow两个类中,这两个类各自继承了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.toolButtonbtn.clicked.connect(child.show)表示当按钮按下时,子窗口显示。
如下图,当点击“处理眼动数据”,弹出处理处理窗体:
总结
以上所述是小编给大家介绍的Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一:安装PyQt5pipinstallpyqt5二:PyQt5简单使用1:使用PyQt5创建一个简单窗口importsysfromPyQt5importQtWi
在之前的文章中,我们介绍了PyQt5和PySide2中主窗口控件MainWindow的使用、窗口控件的4中基础布局管理。从本篇开始,我们来了解一下PyQt5和P
QMainWindow基本介绍QMainWindow主窗口为用户提供了一个应用程序框架,它有自己的布局,可以在布局中添加控件。窗口类型介绍PyQt5中,主要使用
PyQt5不规则窗口实现动画效果实例importsysfromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt
最简单的关闭一个窗口的方法是点击标题栏上的x标志。但是,在下面的例子中,我们将展示如何通过编程来控制关闭窗口。我们将使用PyQt5的信号/槽。以下是我们在例子中