【发布时间】:2014-07-27 18:12:17
【问题描述】:
我只想在用户名和密码分别不正确的情况下显示“无效用户名”和“无效密码”QLabels,否则我想隐藏它们。
我尝试使用 hide() 和 show() 方法,但是 QLabels 使用 show() 方法显示在单独的弹出窗口中,而不是显示在上面显示的位置(在黑框中)。
我正在用 Python 编写代码。
请提出建议。
导入的库:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
代码如下:
#Labels
self.ErrorUsrName = QLabel("Invalid Username")
self.ErrorPasswd = QLabel("Invalid Password")
#Buttons
self.Lbutton = QPushButton("Login")
self.Cbutton = QPushButton("Cancel")
#Line Edits
self.UsrName = QLineEdit("Username")
self.Passwd = QLineEdit("Password")
self.UsrName.selectAll()
#Grid Layout
self.grid = QGridLayout()
self.grid.addWidget(self.UsrName,1,0)
self.grid.addWidget(self.ErrorUsrName.hide(),2,0)
self.grid.addWidget(self.Passwd,3,0)
self.grid.addWidget(self.ErrorPasswd.hide(),4,0)
self.grid.addWidget(self.Lbutton,5,0)
self.grid.addWidget(self.Cbutton,6,0)
self.setLayout(self.grid)
self.UsrName.setFocus()
#Signals
self.connect(self.Cbutton,SIGNAL("clicked()"), self, SLOT("reject()"))
self.connect(self.Lbutton,SIGNAL("clicked()"),self.login)
按钮的登录功能
def login(self):
if (self.UsrName.text() == "Ejaz" and self.Passwd.text() == "test"):
print "Login Successful!"
elif self.UsrName.text() <> "Ejaz":
self.ErrorUsrName.show()
elif self.Passwd.text() <> "test":
self.ErrorPasswd.show()
【问题讨论】:
标签: python python-2.7 pyqt4 qlabel