PyQt5使用QtDesigner实现多界面切换程序

一、首先要安装QtDesigner

        具体安装步骤在此不做赘述,若是有需要的小伙伴可以去找一找教程。

二、简单介绍QtDesigner

        各位伙伴安装完成打开之后的界面类似如下图(Windows版本),图片中已经对各个区域及其作用进行简单介绍,具体用法会在下面继续讲解。

     

 三、使用QtDesigner做简单界面

        1.按照如下步骤,创建一个项目,开始添加控件以及设置相应的各项属性。

        

        2.打开的窗口如下,通过控件属性修改区域设置窗口的标题和图标

                

         我们双击修改属性将窗口标题修改为:W_1,关于窗口图标的设置会在后边介绍导入本地资源文件时详细讲解。

此处我们暂时略过·······

        3.为窗口添加控件(如Label(标签)、Button(按钮)等)

          

         我们通过拖动要添加的控件Label、Push Button到创建的窗口区域来实现添加,添加成功之后,双击即可以修改其中的内容,同时在空间的总览区域,我们可以选中相应的控件名称双击修改成为我们要设置成为的名称,在此处我们将Label和Push Button的名称分别设置为:label_1和btn_1方便我们之后在程序中的调用;在控件属性的修改区域,我们找到font相关的属性,通过Point Size设置字体的大小,勾选Bold选项表示设置字体为粗体。到此,我们第一个窗口的基本控件及其属性已经修改完成,点击保存按钮选择路径,设置文件名称将文件保存到预期文件夹中(注意保存格式为.ui)

        4.保存设置好的文件

           选择好文件保存的路径,将文件命名修改为与窗口名称一致(建议,防止写代码的时候搞不清楚文件对应的窗口)

        

         5.重复上述操作,设置另外需要的三个子窗口模板以及第一的菜单窗口模板。

                相关流程如下:

                

                 

          关于创建菜单主窗口,我们需要为其添加四个按钮对应四个子窗口,同时按照用户习惯我们添加一个退出程序的按钮,关于四个按钮的布局我们可以添加一个horizontal Layout(水平布局器)将按钮加入到布局器中,这样子,四个按钮就会在布局器区域内均匀分布且大小相同。至此,我们关于QtDesigner的操作已经结束,下面要开始Python的编程阶段。

四、Python编写程序实现界面切换功能

from PyQt5 import uic
import sys
from PyQt5.QtWidgets import QWidget, QApplication


class Window_0(QWidget):
    def __init__(self):
        super(Window_0, self).__init__()
        self.init_ui()

    def init_ui(self):
        self.Firstui = uic.loadUi("UI文件/模板/W_0.ui")
        self.btn_w1 = self.Firstui.btn_w1
        self.btn_w2 = self.Firstui.btn_w2
        self.btn_w3 = self.Firstui.btn_w3
        self.btn_w4 = self.Firstui.btn_w4
        self.btn_quit = self.Firstui.btn_quit


class Window_1(QWidget):
    def __init__(self):
        super(Window_1, self).__init__()
        self.init_ui_1()

    def init_ui_1(self):
        self.ui_1 = uic.loadUi("UI文件/模板/W_1.ui")
        self.btn_1 = self.ui_1.btn_1


class Window_2(QWidget):
    def __init__(self):
        super(Window_2, self).__init__()
        self.init_ui_2()

    def init_ui_2(self):
        self.ui_2 = uic.loadUi("UI文件/模板/W_2.ui")
        self.btn_2 = self.ui_2.btn_2


class Window_3(QWidget):
    def __init__(self):
        super(Window_3, self).__init__()
        self.init_ui_3()

    def init_ui_3(self):
        self.ui_3 = uic.loadUi("UI文件/模板/W_3.ui")
        self.btn_3 = self.ui_3.btn_3


class Window_4(QWidget):
    def __init__(self):
        super(Window_4, self).__init__()
        self.init_ui_4()

    def init_ui_4(self):
        self.ui_4 = uic.loadUi("UI文件/模板/W_4.ui")
        self.btn_4 = self.ui_4.btn_4


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w_0 = Window_0()
    w_1 = Window_1()
    w_2 = Window_2()
    w_3 = Window_3()
    w_4 = Window_4()
    w_0.Firstui.show()
    w_0.btn_w1.clicked.connect(w_1.ui_1.show)
    w_0.btn_w2.clicked.connect(w_2.ui_2.show)
    w_0.btn_w3.clicked.connect(w_3.ui_3.show)
    w_0.btn_w4.clicked.connect(w_4.ui_4.show)
    w_0.btn_quit.clicked.connect(app.quit)
    app.exec_()

        注意:uic.loadUi("UI文件/模板/W_0.ui")双引号里边的内容是为对应的UI文件的存储路径,根据自己文件的存储路径自行修改。

五、程序运行效果

感谢观看,感兴趣的话可以点一下关注,后续会继续更新相关的文章! 

使用PyQt可以很容易地实现渐变界面切换效果。渐变界面切换是指在切换界面时,界面的过渡效果呈现为渐变的效果,以增加用户交互的吸引力和美观性。 首先,需要导入PyQt的相关模块。在使用PyQt5时,可以导入如下模块: ```python from PyQt5.QtCore import Qt, QPropertyAnimation, QRect from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton from PyQt5.QtGui import QLinearGradient, QColor, QPainter, QGradient ``` 接下来,需要创建一个自定义的QWidget类来实现界面切换效果。在该类中,需要定义一个渐变动画对象,并实现切换时的渐变动画效果。可以使用QPropertyAnimation类来实现渐变动画效果。 首先,在初始化函数中,创建一个QPropertyAnimation对象,并设置它的起始值和结束值。例如,可以设置起始值为0,结束值为1,表示渐变的效果从完全透明到完全不透明。 然后,在paintEvent函数中,使用QPainter对象来绘制界面,并设置渐变的透明度。可以使用setOpacity函数设置透明度,传入QPropertyAnimation对象的当前值,从而实现渐变效果。 最后,在按钮的点击事件中,启动渐变动画对象,通过调用start函数来启动渐变动画,并在动画结束后重新绘制界面,从而实现渐变界面切换效果。 一个简单示例代码如下: ```python class MyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) self.animation = QPropertyAnimation(self, b"opacity") self.animation.setStartValue(0) self.animation.setEndValue(1) def paintEvent(self, event): painter = QPainter(self) gradient = QLinearGradient(0, 0, 0, self.height()) gradient.setColorAt(0, QColor(255, 255, 255)) gradient.setColorAt(1, QColor(0, 0, 0)) painter.setBrush(QBrush(gradient)) painter.fillRect(QRect(0, 0, self.width(), self.height()), gradient) painter.setOpacity(self.animation.currentValue()) def startAnimation(self): self.animation.start() self.animation.finished.connect(self.repaint) if __name__ == "__main__": app = QApplication([]) window = QMainWindow() widget = MyWidget(window) button = QPushButton("Switch", window) button.clicked.connect(widget.startAnimation) layout = QVBoxLayout() layout.addWidget(widget) layout.addWidget(button) central_widget = QWidget() central_widget.setLayout(layout) window.setCentralWidget(central_widget) window.show() app.exec_() ``` 这样,当点击按钮时,界面就会出现渐变的切换效果。当渐变动画结束后,界面会重新绘制,呈现渐变效果完成后的最终界面。 以上就是使用PyQt实现渐变界面切换的简单示例代码。通过使用QPropertyAnimation类和QPainter类,可以方便地实现渐变效果,增强界面切换的视觉效果。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值