【问题标题】:Hide or unhide a QLabel at the same location在同一位置隐藏或取消隐藏 QLabel
【发布时间】: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


    【解决方案1】:

    您的问题是以下几行:

    self.grid.addWidget(self.ErrorUsrName.hide(),2,0)
    ...
    self.grid.addWidget(self.ErrorPasswd.hide(),4,0)
    

    hide 函数不会返回 QLabel 对象,因此您不会将它们添加到网格中。 您应该在其他地方调用 hide() 函数,例如:

    #Labels
    self.ErrorUsrName = QLabel("Invalid Username")
    self.ErrorUsrName.hide()
    self.ErrorPasswd = QLabel("Invalid Password")
    self.ErrorPasswd.hide()
    ...
    self.grid.addWidget(self.ErrorUsrName,2,0)
    self.grid.addWidget(self.ErrorPasswd,4,0)
    

    这将解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      相关资源
      最近更新 更多