我在stateChanged信号的QT槽函数中遇到以下情况:
void ui::myslot(int state) {
...
if (condition) {
checkbox->setChecked(true);
}
...
}如果我的复选框已经被选中,并且当我试图取消选中它时,如果条件满足,该复选框将再次被选中。但是,当我再次尝试取消选中它时,条件仍然为真,它只是变为未选中,没有发出任何信号。也就是说,上面的函数甚至没有被调用...
知道这里会发生什么吗?
非常感谢!:)
发布于 2017-07-23 23:59:54
您是否尝试创建一个临时插槽,并将其与stateChanged()信号连接?例如:
void onStateChanged(int state);您可以将插槽定义为:
void onStateChanged(int state)
{
qDebug() << "State changed.";
}不要忘记在.cpp文件中包含头文件。然后将插槽与信号连接并启动应用程序。如果您在标准输出中看到"State changed.",并且执行程序到达插槽,则信号正确发出。
https://stackoverflow.com/questions/45266567
复制相似问题