Получение текста из поля пароля [python] [pyqt4] - PullRequest
2 голосов
/ 26 января 2010
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

Проще говоря, я делаю форму входа. Пользователь вводит свою электронную почту, затем текстовое поле очищается и режим эха устанавливается в режим пароля. Функция text () возвращает сообщение электронной почты нормально, но когда я вызываю text () после изменения режима эха, она возвращает 0. Я пролистываю документацию, ища что-нибудь относительно функции text () и как она работает когда включен режим пароля, однако я ничего не нашел. Кто-нибудь знает, как это делается?

1 Ответ

0 голосов
/ 26 января 2010

Я не могу предложить исправление для использования QLineEdit, но вы можете получить пароли в QInputDialog, указав mode в методе getText(). Как это:

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
...