pyqt5 判断lineedit是否为空_PyQt5(3) :实现登录 事件监听处理 程序逻辑功能和界面分离...

学习于: 学点编程吧:PyQt5图形界面编程(目录)

最终界面如下:

451d5e42cff2a1b59253e0d50a2157bc.png

然后是代码:

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)
    ex = Example()
    sys.exit(app.exec_())

这个就不多解释了,前面文章中已经讲过了,中间是创建对象,创建对象就默认调用构造函数,构造函数中就创建UI。然后就进行应用程序的主循环。

然后看主要代码:

def __init__(self):

        super().__init__()
        self.initUI()
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值