pyqt5写代码流程

  • Post author:
  • Post category:其他








p

y

q

t

5

写代码流程

pyqt5写代码流程






p


y


qt


5


写代码流程








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_())



版权声明:本文为qq_41375318原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。