PySide 密码字段不起作用

PySide Password Field not working

我是 PySide/PyQt 的新手,我正在创建一个接受用户名和密码的对话框。我遇到密码文本字段错误。

根据 PySide 的文档创建我正在使用的密码文本字段

self.password_text = QtGui.QLineEdit.setEchoMode(QtGui.QLineEdit.EchoMode.Password)

但是当我运行应用程序时,出现以下错误。

   self.password_text =QtGui.QLineEdit.echoMode(QtGui.QLineEdit.Password) 
   TypeError: descriptor 'echoMode' requires a 'PySide.QtGui.QLineEdit' object but received a 'PySide.QtGui.QLineEdit.EchoMode

您的代码没有创建 QLineEdit。你应该这样做:

self.password_text=QtGui.QLineEdit()
self.password_text.setEchoMode(QtGui.QLineEdit.EchoMode.Password)

关于您的错误的更多信息:

  • QtGui.QLineEdit.setEchoMode 不是有效调用。 setEchoMode 是 class QLineEdit 的一个方法,因此您需要 class 的一个实例来调用它(这就是错误消息的意思)。有效调用为 QtGui.QLineEdit().setEchoMode.
  • 如果您查看文档,您会看到 setEchoMode returns void(所以在 Python 中什么也没有)。所以如果没有之前的错误,self.password_text 应该是 None.
    通常在 QT 中,您必须创建小部件,然后将其设置为 属性.