类中的函数输入

时间:2018-04-16 23:29:48

标签: python python-3.x pyqt

所以我已经开始在python中使用类,我仍然在学习它是如何工作的。所以在我的代码的这一部分,我找到了一些我不理解的东西。

def Button(self):
        self.Button = QPushButton("Push me Bitch!",self)
        self.Button.setGeometry(QtCore.QRect(500, 500, 5, 5))
        self.Button.resize(self.Button.minimumSizeHint())
        self.Button.clicked.connect(self.ButtonPress(someInput))


    # Do functions
    def ButtonPress(self , someInput):
         print('someInput')
         self.OutputBox1.setText('I Has Been Pressed!')

这是我得到的错误:

Traceback (most recent call last):
  File "C:\Users\Gebruiker\Desktop\Python shizzle\BijHillen\BijGui.py", line 92, in <module>
    ex = Example()
  File "C:\Users\Gebruiker\Desktop\Python shizzle\BijHillen\BijGui.py", line 40, in __init__
    self.Button()
  File "C:\Users\Gebruiker\Desktop\Python shizzle\BijHillen\BijGui.py", line 68, in Button
    self.Button.clicked.connect(self.ButtonPress(5))
  File "C:\Users\Gebruiker\Desktop\Python shizzle\BijHillen\BijGui.py", line 74, in ButtonPress
    self.OutputBox1.setText('I Have Been Pressed!!!')
AttributeError: 'Example' object has no attribute 'OutputBox1'

如果我删除了someInput。那就没问题了。这是如何工作的?

祝你好运

1 个答案:

答案 0 :(得分:1)

您的事件设置错误,当您将事件附加到某个按钮时,您通常希望将该功能而不是该功能的结果链接到clicked事件。

而不是:

self.Button.clicked.connect(self.ButtonPress(someInput))

你想:

self.Button.clicked.connect(self.ButtonPress)

这样,单击按钮时将调用该函数。

您的代码可能还有其他一些问题,但首先要解决这个问题。