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



我目前正在使用 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)

最新更新