我目前正在使用 PyQt5 构建一个接口,我想知道是否有一种优雅的方法可以将多个信号连接到同一个功能?
直接的解决方案是这样的:
self.ui.button1.clicked.connect(self.Function)
self.ui.button2.clicked.connect(self.Function)
self.ui.button3.clicked.connect(self.Function)
self.ui.button4.clicked.connect(self.Function)
但是有没有更好、更易读的选择?例如,看起来像这样的东西:
self.Function.connect(self.ui.button1.clicked,
self.ui.button2.clicked,
self.ui.button3.clicked,
self.ui.button4.clicked)
我也开始阅读有关QSignalMapper
,但如果可以避免它们,那就太好了。
提前谢谢你!
您可以创建一个函数,该函数将元组或按钮列表作为参数,然后为每个按钮连接单击信号。
self.connect_buttons((self.ui.button1, self.ui.button2, self.ui.button3, self.ui.button4))
def connect_buttons(self, button_tup):
for button in button_tup:
button.clicked.connect(self.Function)