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

2024-04-25 08:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用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的书,但是如果可以避免的话,那就很好了。你知道吗

提前谢谢!你知道吗


Tags: 函数selfui信号connect方式function解决方案
1条回答
网友
1楼 · 发布于 2024-04-25 08:30:04

您可以创建一个函数,将一个元组或按钮列表作为参数,然后连接每个按钮的单击信号。你知道吗

    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)

相关问题 更多 >