pyqt 事件监听_PyQt5(3) :实现登录 事件监听处理 程序逻辑功能和界面分离

本文通过一个简单的登录界面示例介绍了PyQt5中事件监听的使用,包括如何处理按钮点击事件、文本输入及验证登录信息。在代码中,`self.bt1.clicked.connect(self.showMessage)`用于将按钮点击事件连接到`showMessage`方法,实现登录验证。此外,还讨论了Python与Java在语法和编程体验上的差异,并提到了如何使用Qt Designer和Eric6简化界面设计。
摘要由CSDN通过智能技术生成

最终界面如下:

然后是代码:

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox, QLineEdit, QLabel

class Example(QWidget):

def __init__(self):

super().__init__()

self.initUI()

def initUI(self):

self.setGeometry(300, 300, 400, 300)

self.bt1 = QPushButton('登录', self)

self.bt1.setGeometry(115, 150, 70 ,30)

self.bt1.clicked.connect(self.showMessage) # 相当于就是建立了一个click的处理事件

self.usr = QLabel("用户:", self) # 这里的好像都需要把self作为第二个参数传进去才能显示出来

self.usr.setGeometry(50, 50, 30, 30)

self.pwd = QLabel("密码:", self)

self.pwd.setGeometry(50, 80, 30, 30)

self.text1 = QLineEdit(self)#没有self的话连框都出不来

self.text1.selectAll()

self.text1.setFocus()

self.text1.setGeometry(80, 50, 150 ,30)

self.text2 = QLineEdit( self)

self.text2.selectAll()

self.text2.setFocus()

self.text2.setGeometry(80, 80, 150 ,30)

self.text2.setEchoMode(QLineEdit.Password)

self.show()

def showMessage(self):

acount = self.text1.text() #这里text应该不需要转为字符串吧,返回的应该就是一个字符串。

password= self.text2.text()

print(acount)

print(password)

if len(password) == 0:

QMessageBox.warning(self, "警告", "密码为空")

else:

QMessageBox.warning(self, "警告", "密码长度低于6位")

if acount == "jackhe" and password == "123456" :

QMessageBox.about(self, '','登录成功')

else:

QMessageBox.about(self, '','登录失败!')

def closeEvent(self, event):

reply = QMessageBox.question(self, '确认', '确认退出吗', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

if reply == QMessageBox.Yes:

event.accept()

else:

event.ignore()

if __name__ == '__main__':

app = QApplication(sys.argv)

ex = Example()

sys.exit(app.exec_())

先讲我写完之后的第一感受吧:

感觉这个很捞,因为我发现从知乎上复制下来的不知道为啥会有缩进错误,然后干脆自己重写了一遍,或者是回退到上一行,有分号的enter一下就好。对我这个python小白来说,python的缩进真的恶心,压根看不出来哪里缩进不对,各种报indent。。Java的括号多舒服啊! 然后是忽然记起来python的变量不需要声明,直接使用就行,我第一反应就是去找哪里声明的,,尴尬。还有就是它不会自己自动导包,你需要啥包得自己去import,尴尬。还有就是里面的self的使用泛滥得不是你所能想象,调用方法必须来一个self,使用变量可以来个self。

然后回到我们得代码中来,看看怎么写这个登录界面吧。

(下面的构造函数是我从Java里引入的概念,感觉也是这个概念,大家自行理解)

先看第一步:

if __name__ == '__main__':

app = QApplication(sys.argv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值