在Qt / C ++中,有没有办法将按钮点击事件列表连接到一个插槽?

时间:2015-10-02 06:05:17

标签: c++ qt qt-signals

在Qt / C ++中,我有一系列按钮,我想通过一个单一的事件处理程序运行它们,然后知道点击了哪一个。

有没有办法将按钮点击事件列表连接到一个插槽?在中,我创建了QList<QPushButton *>,然后使用单个connect()语句来处理此列表的&QPushButton::clicked信号,并将其映射到一个SLOT(onButtonClicked(QWidget *))

关键词 - 单身。当然,我可以迭代一个列表,但我想知道是否只有一个connect()语句在列表迭代之外。

换句话说,我想知道我是否已经采用了一种有效的方法来实现这一目标,而不是我在QList QPushButton 。这只是一个高效和整洁的问题。

1 个答案:

答案 0 :(得分:2)

处理此问题的最佳方式可能是QButtonGroup。如果您坚持使用自己的列表或可能有不同的小部件或信号,您仍然可以使用QSignalMapper

http://doc.qt.io/qt-5/qbuttongroup.html

http://doc.qt.io/qt-5/qsignalmapper.html