PYQT|Python GUI(一)GUI制作的准备工作(在VsCode中的配置)PYQT6|Python GUI制作(二)qtdesigner ui转py后的运行
目录
PYQT6|Python GUI系列文章
前言
二、代码介绍
1.子窗口代码
2.子窗口跳转
前言
想要加入子窗口?不明白?下面是一种实现方式
简要介绍:在一个主窗口中,通过按钮实现一个子窗口的跳转。
一、前期工作
要想实现子窗口的跳转,那首先是,创建好主窗口和子窗口
1、主窗口 MainWidget
2 子窗口 ChildWidget
说明:此处的子窗口和主窗口均在qt designer 中创建
跳转按键 三点
二、代码介绍 1.子窗口代码
由qt designer创建得到子窗口(此处命名为Intro),并转换成py代码后,我们得到以下代码,
import sys import Intro#Intro为子窗口的文件名from PyQt6 import QtCore, QtGui, QtWidgetsfrom PyQt6.QtWidgets import QApplication, QWidgetclass 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)
做完上面这些步骤,你就可以实现子窗口的跳转了。
跳转效果如下图所示
总结
以上就是本文的所有内容,由于水平有限,有一些介绍或许有不正确的地方,大家见谅。