在Qt / C ++中,我有一系列按钮,我想通过一个单一的事件处理程序运行它们,然后知道点击了哪一个。
有没有办法将按钮点击事件列表连接到一个插槽?在中,我创建了QList<QPushButton *>
,然后使用单个connect()
语句来处理此列表的&QPushButton::clicked
信号,并将其映射到一个SLOT(onButtonClicked(QWidget *))
。
关键词 - 单身。当然,我可以迭代一个列表,但我想知道是否只有一个connect()
语句在列表迭代之外。
换句话说,我想知道我是否已经采用了一种有效的方法来实现这一目标,而不是我在QList
QPushButton
。这只是一个高效和整洁的问题。
答案 0 :(得分:2)
处理此问题的最佳方式可能是QButtonGroup
。如果您坚持使用自己的列表或可能有不同的小部件或信号,您仍然可以使用QSignalMapper
。