gpt4 book ai didi

Qt 复选框 stateChanged 事件处理程序

转载 作者:行者123 更新时间:2023-12-04 23:02:55 24 4
gpt4 key购买 nike

在我的 Qt 应用程序中,我想使用复选框在切换为未选中时执行 A,并在切换为选中时执行 B。该复选框与 foo(int) Hook 。

connect(myCB, SIGNAL(stateChanged(int)), this, SLOT(foo(int)));

当完整性检查失败时会出现问题(例如,某些变量的值无效),我只想显示错误消息并保持一切不变。所以我再次切换复选框以将其恢复到原来的位置。但似乎这个 Action 会再次触发回调函数 foo(int) ,这会搞砸一切。我不希望它在这种情况下触发回调。我应该怎么做?或者,还有更好的方法?请参阅下面的伪代码。
void foo(int checkState)
{
if (checkState == Qt::Unchecked) {
if (!passSanityCheck()) {
// show error message
checkBoxHandle->toggle();
return;
}

// do A when it's unchecked
}
else {
if (!passSanityCheck()) {
// show error message
checkBoxHandle->toggle();
return;
}

// do B when it's checked
}
return;
}

最佳答案

联系 QCheckBox::clicked(bool checked)向您的插槽发出信号:

QCheckBox *cb = new QCheckBox(this);
connect(cb, SIGNAL(clicked(bool)), this, SLOT(toggled(bool)));

如果您调用 setDown(),则不会发出此信号, setChecked()toggle() .

关于Qt 复选框 stateChanged 事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com