在Qt / C++中,我有一系列按钮,我想在其中通过单个事件处理程序来运行它们以进行单击,并知道单击了哪个按钮。

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

那里的关键字-单。当然,我可以迭代一个列表,但是我想知道是否有一种方法可以使列表迭代之外仅包含一个connect()语句。

换句话说,我想知道是否已经有一种我可能没有意识到的有效方法,而不是迭代QListQPushButton。这只是高效和整洁的问题。

最佳答案

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

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

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

10-08 05:21
查看更多