我有一组单选按钮。这些都连接到相同的SLOT(updateImage())
。
以下是它们的设置方式:
connect(m_radio1, SIGNAL(toggled(bool)), this, SLOT(updateImage());
connect(m_radio2, SIGNAL(toggled(bool)), this, SLOT(updateImage());
connect(m_radio3, SIGNAL(toggled(bool)), this, SLOT(updateImage());
将单选按钮从一个按钮更改为下一个按钮时,此SLOT()
被调用两次,一次用于取消选择先前选择的单选按钮,一次用于选择单击的单选按钮。
我想知道,有没有办法将我的SLOT()
修改为仅在其中一种情况下,当点击的项目被检查时?
由于
答案 0 :(得分:3)
您要求连接到切换的信号 - 无论何时切换对象,都会调用此信号。有什么令人惊讶的?
您可以连接到“已点击”信号,该信号提供您可以测试的“已检查”参数。
顺便说一句;如果使用现代Qt版本,你应该抛弃SIGNAL和SLOTS宏,而是使用在编译时检查的新connect()语法。
答案 1 :(得分:2)
由于你的信号有一个bool参数。
toggled(bool)
您可以将该参数添加到SLOT方法中。然后检查参数是否已选中。