单击按钮时如何调用两个函数?

Kev*_*vin 1 python qt pyqt signals-slots pyside

这是我的按钮

# Delete button
deleteButton = QtGui.QPushButton("X", self)
deleteButton.clicked[bool].connect(lambda: self.delete_listener(listener))
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情

deleteButton.clicked[bool].connect(lambda: self.delete_listener(listener))
deleteButton.clidked[bool].connect(lambda: self.stop_send_data())
Run Code Online (Sandbox Code Playgroud)

我能想到的最简单的方法是制作

delete_listener 
Run Code Online (Sandbox Code Playgroud)

称呼

stop_send_data
Run Code Online (Sandbox Code Playgroud)

但无论如何我可以绕过它吗?

Tri*_*ion 5

我想做类似的事情..

你做到了吗?因为它确实有效。在 Qt 中,您可以将单个信号连接到多个插槽。尽管可能无法保证执行顺序,因此应该无关紧要。但是,如果顺序很重要,您可以按照 user2600939 的建议进行操作(将两个操作合并为一个操作)。

一键完成两个动作的小例子:

from __future__ import print_function
from PySide import QtGui

app = QtGui.QApplication([])

button = QtGui.QPushButton('Click me')
button.clicked.connect(lambda: print('tip'))
button.clicked.connect(lambda: print('top'))
button.show()

app.exec_()
Run Code Online (Sandbox Code Playgroud)