pyqt5写代码流程

p y q t 5 写代码流程 pyqt5写代码流程 pyqt5写代码流程

Step1:在Designer中进行界面设计,添加槽函数,重新生成界面py文件

在这里插入图片描述
在这里插入图片描述

Step2:实现槽函数

Step3:实现对外发射的信号

    show_register_pane_signal =pyqtSignal()
    check_login_signal = pyqtSignal(str,str)

Step4: 在主函数中,对各类界面,信号进行处理

1.信号的连接

register_pane.exit_signal.connect(exit_register_pane)

2.槽函数

    def exit_register_pane():
        animation = QPropertyAnimation(register_pane)
        animation.setTargetObject(register_pane)
        animation.setPropertyName(b"pos")
        animation.setStartValue(QPoint(0, 0))
        animation.setEndValue(QPoint(0, login_pane.width()))
        animation.setDuration(500)
        animation.start(QAbstractAnimation.DeleteWhenStopped)
from Login_Pane import LoginPane
from Register_Pane import RegisterPane

# 0.导入需要的包和模块
from PyQt5.Qt import *
import sys

if __name__ == '__main__':


    # 1.创建一个应用程序对象
    app = QApplication(sys.argv)

    # 控制面板的创建
    login_pane = LoginPane()
    register_pane = RegisterPane(login_pane)
    register_pane.move(0, login_pane.height())
    register_pane.show()

    # 槽函数
    def exit_register_pane():
        animation = QPropertyAnimation(register_pane)
        animation.setTargetObject(register_pane)
        animation.setPropertyName(b"pos")
        animation.setStartValue(QPoint(0, 0))
        animation.setEndValue(QPoint(0, login_pane.width()))
        animation.setDuration(500)
        animation.start(QAbstractAnimation.DeleteWhenStopped)
        
    def show_register_pane():
        print("展示注册界面")

        animation = QPropertyAnimation(register_pane)
        animation.setTargetObject(register_pane)
        animation.setPropertyName(b"pos")
        animation.setStartValue(register_pane.pos())
        animation.setEndValue(QPoint(0,0))
        animation.setDuration(500)
        animation.start(QAbstractAnimation.DeleteWhenStopped)

    # 信号的连接
    register_pane.exit_signal.connect(exit_register_pane)
    login_pane.show_register_pane_signal.connect(show_register_pane)
    register_pane.register_account_pwd_signal.connect(lambda a,p:print(a,p))


    # 展示控件
    login_pane.show()
    # 应用程序的执行,进入到信息循环
    sys.exit(app.exec_())

补充代码

    def __init__(self,parent=None,*args,**kwargs):
        super().__init__(parent,*args,**kwargs)
# 0.导入需要的包和模块
from PyQt5.Qt import *
import sys

from resource.login import Ui_Form
class LoginPane(QWidget,Ui_Form):

    show_register_pane_signal =pyqtSignal()
    check_login_signal = pyqtSignal(str,str)

    def __init__(self,parent=None,*args,**kwargs):
        super().__init__(parent,*args,**kwargs)
        self.setAttribute(Qt.WA_StyledBackground,True)
        self.setupUi(self)

    def show_register_pane(self):
        # print("弹出注册界面")
        self.show_register_pane_signal.emit()

    def open_link(self):
        link ="https://www.csdn.net/"
        QDesktopServices.openUrl(QUrl(link))


    def check_login(self):
        account = self.account_cb.currentText()
        self.check_login_signal.emit()










if __name__ == '__main__':

    # 1.创建一个应用程序对象
    app = QApplication(sys.argv)
    # 2.控件的操作
    # 2.1创建控件
    window = LoginPane()
    # 2.2设置控件

    # 2.3展示控件
    window.show()
    # 3.应用程序的执行,进入到信息循环
    sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值