如何优雅地将许多信号连接到PyQt5中的函数?

时间:2018-03-07 12:00:39

标签: python pyqt signals pyqt5 slot

我目前正在使用PyQt5构建一个接口,我想知道是否有一种优雅的方法将多个信号连接到同一个函数?

直截了当的解决方案是:

Text

但是有更好,更可读的选项吗?例如,看起来像:

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) 的内容,但如果可以避免这样做,那就太好了。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

你可以创建一个以元组或按钮列表为参数的函数,然后连接每个按钮的点击信号。

    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)