从密码字段检索文本[python][pyqt4]

2024-10-01 07:19:48 发布

您现在位置:Python中文网/ 问答频道 /正文

def welcomeStage (self):        
    self.test = QtGui.QLineEdit (self)
    self.test.move (50, 150)

    QtCore.QObject.connect (self.test, QtCore.SIGNAL ('returnPressed()'), self.passwordStage)

def passwordStage (self):
    self.email = self.test.text()
    self.test.clear()
    self.test.setEchoMode (QtGui.QLineEdit.Password)
    QtCore.QObject.connect (self.test, QtCore.SIGNAL ('returnPressed()'), self.loginStage)

def loginStage (self):
    self.pwd = self.test.text()
    print self.pwd
    if len (self.pwd) < 0:
        welcomeStage ()
        return

简单地说,我正在做一个登录表单。用户输入他们的电子邮件,然后文本字段被清除,回显模式设置为密码模式。函数的作用是返回email fine,但当我在更改echo模式后调用text()时,它返回0。我翻遍了所有的文档,寻找有关text()函数的任何信息,以及在密码模式打开时它是如何运行的,但是我没有找到任何东西。有人知道这是怎么做到的吗?在


Tags: texttestselfsignaldefconnectpwd模式
1条回答
网友
1楼 · 发布于 2024-10-01 07:19:48

我不能提供使用QLineEdit的修复方法,但是您可以通过在getText()方法中指定模式来获得QInputDialog中的密码。像这样:

diag = QtGui.QInputDialog
s = None
while s is None:
    qstring, ok = diag.getText(self, QtCore.QString(title), QtCore.QString(text), mode=QtGui.QLineEdit.Password)
    s = str(qstring)
    if ok is False: # user pressed Cancel
        return None
    if s == '':     # user entered nothing
        s = None
return s

相关问题 更多 >