PySide密码字段不起作用

vdk*_*ian 0 python pyqt pyside python-2.7

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

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

self.password_text = QtGui.QLineEdit.setEchoMode(QtGui.QLineEdit.EchoMode.Password)
Run Code Online (Sandbox Code Playgroud)

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

   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
Run Code Online (Sandbox Code Playgroud)

Mel*_*Mel 5

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

self.password_text=QtGui.QLineEdit()
self.password_text.setEchoMode(QtGui.QLineEdit.EchoMode.Password)
Run Code Online (Sandbox Code Playgroud)

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

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