PySide:如何在QPushButton点击的插槽中获取点击的QPushButton对象?

tao*_*4yu 6 qt pyqt pyside qpushbutton

我是PySide的新手.我想在其单击的插槽中获取QPushButton obj(例如使用它来获取其文本).

button = QtGui.QPushButton("start go")
button.clicked.connect(self.buttonClick)

def buttonClick(self):
    ... # How can I get the button  object?
    # print button.text()  how to get the text : 'start go' ?
Run Code Online (Sandbox Code Playgroud)

谢谢!

qur*_*ban 12

以下是我为解决问题所做的工作:

button = QtGui.QPushButton("start go")
button.clicked.connect(lambda: self.buttonClick(button))

def buttonClick(self, button):
    print button.text()
Run Code Online (Sandbox Code Playgroud)

  • +1.这可能是避免使用`sender()`的最佳方法.但是,在循环中连接大量按钮时,使用`lambda`可能会很棘手. (3认同)

小智 11

您可以使用它self.sender()来确定发起信号的对象.

在你的代码中,有些东西应该可行.

button = QtGui.QPushButton("start go")
button.clicked.connect(self.buttonClick)

def buttonClick(self):
    print self.sender().text()
Run Code Online (Sandbox Code Playgroud)

  • @ tao4yu.示例代码应该是:`print self.sender().text()` (2认同)