PyQt按钮事件可以以正常方式连接到函数,以便函数接收默认信号参数(在这种情况下是按钮检查状态):
def connections(self):
my_button.clicked.connect(self.on_button)
def on_button(self, checked):
print checked # prints "True"
或者,可以使用lambda
:
def connections(self):
my_button.clicked.connect(lambda: self.on_button('hi'))
def on_button(self, message):
print message # prints "hi"
是否有一种很好的方法来保存两个信号参数,以便它可以直接由下面的函数接收?
def on_button(self, checked, message):
print checked, message # prints "True, hi"
答案 0 :(得分:20)
你的lambda
可以提出争论:
def connections(self):
my_button.clicked.connect(lambda checked: self.on_button(checked, 'hi'))
def on_button(self, checked, message):
print checked, message # prints "True, hi"
或者您可以使用functools.partial
:
# imports the functools module
import functools
def connections(self):
my_button.clicked.connect(functools.partial(self.on_button, 'hi'))
def on_button(self, message, checked):
print checked, message # prints "True, hi"