【问题标题】:PySide Password Field not workingPySide 密码字段不起作用
【发布时间】:2015-10-04 14:14:27
【问题描述】:

我是 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

【问题讨论】:

    标签: python python-2.7 pyqt pyside


    【解决方案1】:

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

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

    更多关于你的错误:

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

    【讨论】:

    • 2k19 年:QLineEdit 现在位于 QtWidgets 下。所以应该使用QtWidgets.QLineEdit.EchoMode.Password
    猜你喜欢
    • 2014-02-07
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2018-11-22
    • 2010-11-09
    相关资源
    最近更新 更多