【问题标题】:QCheckbox: stateChanged signal not emittedQCheckbox:未发出 stateChanged 信号
【发布时间】:2017-07-23 23:59:53
【问题描述】:
对于 stateChanged 信号,我的 QT Slot 函数中有以下情况:
void ui::myslot(int state) {
...
if (condition) {
checkbox->setChecked(true);
}
...
}
如果我的复选框已经被选中,当我尝试取消选中它时,如果条件满足,复选框将再次被选中。
但是,当我尝试再次取消选中它并且条件仍然为真时,它只是变为未选中,没有发出任何信号。即,上面的函数甚至没有被调用...
知道这里会发生什么吗?
非常感谢! :)
【问题讨论】:
标签:
c++
qt
checkbox
qcheckbox
【解决方案1】:
您是否尝试创建一个临时槽,将其与 stateChanged() 信号连接?例如:
void onStateChanged(int state);
您可以将插槽定义为:
void onStateChanged(int state)
{
qDebug() << "State changed.";
}
不要忘记在 .cpp 文件中包含标头。然后将插槽与信号连接并启动应用程序。如果您在标准输出中看到"State changed." 并且执行到达槽位,则信号已正确发出。