PYQT6|Python GUI系列文章
PYQT|Python GUI(一)GUI制作的准备工作(在VsCode中的配置)
PYQT6|Python GUI制作(二)qtdesigner ui转py后的运行
目录
前言
想要加入子窗口?不明白?下面是一种实现方式
简要介绍:在一个主窗口中,通过按钮实现一个子窗口的跳转。
一、前期工作
要想实现子窗口的跳转,那首先是,创建好主窗口和子窗口
1. 主窗口 MainWidget
2 子窗口 ChildWidget
说明:此处的子窗口和主窗口均在qt designer 中创建
跳转按键 三点
二、代码介绍
1.子窗口代码
由qt designer创建得到子窗口(此处命名为Intro),并转换成py代码后,我们得到以下代码,
import sys
import Intro#Intro为子窗口的文件名
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtWidgets import QApplication, QWidget
class Introduction(QtWidgets.QMainWindow):#子窗口类函数
def setupUi(self, ChlidWidget):#子窗口设置
#由qt designer 的ui文件转换得到的py代码,此处省略
#……………………
def retranslateUi(self, ChlidWidget):#子窗口文本
#略
在原始代码下增加以下代码,子窗口文件可以单独运行。
详细介绍可以参考我pyqt6专栏中的
if __name__ == '__main__':#子窗口运行
app = QApplication(sys.argv)
ChildWidget= QWidget()
ui = Intro.Introduction()
ui.setupUi(ChildWidget)
ChildWidget.show()
sys.exit(app.exec())
2.子窗口跳转
但是如何在主窗口中实现子窗口的跳转呢?
1.首先我们需要在子窗口的类函数中加入下面这段代码
def __init__(self):#类封装用于跳转
super(Introduction,self).__init__() #Introduction 为子窗口类函数,注意替换
self.setupUi(self)
self.retranslateUi(self)
加入位置如下图所示:
2.接下来,切换到主窗口代码
首先,先引用子窗口文件 (也就是图片第4行的代码
from Intro import*
同样的,在主窗口的类函数中进行类封装:
def __init__(self):#封装类函数用以窗口跳转
super(Ui_MainWindow,self).__init__() #Ui——MainWindow 为主窗口类函数,参考下图
self.setupUi(self)
self.retranslateUi(self)
3 将子窗口函数和主窗口中的按钮链接起来
(1)在主窗口代码文件中定义子窗口跳转函数
def B_introduction(self):#子窗口跳转函数
ui_intro.show()
(2)将跳转函数与主窗口按钮链接
def setupUi(self, MainWindow):#主窗口设置函数
#设置跳转按钮
#也就是上面图片显示的省略号按钮,这一步可以直接在qtdesigner中拖动放置,会直接生成
#我将跳转按钮命名为Button_introd
#按钮类型即命名
self.Button_introd = QtWidgets.QToolButton(self.centralwidget)
#设置按钮的位置 QRect(x,y,a,b) x,y为横纵坐标,a,b为按钮占据的位置的长宽(这解释并不规范)
self.Button_introd.setGeometry(QtCore.QRect(150, 410, 21, 22))
self.Button_introd.setObjectName("Button_introd")
#将按钮与跳转函数链接,点击按钮就可以实现跳转
self.Button_introd.clicked.connect(self.B_introduction)
做完上面这些步骤,你就可以实现子窗口的跳转了。
跳转效果如下图所示
总结
以上就是本文的所有内容,由于水平有限,有一些介绍或许有不正确的地方,大家见谅。