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 版权协议,转载请附上原文出处链接和本声明。