我有一个带有名为
的插槽的复选框void MainWindow::on_checkBoxPhaseUnwrap_stateChanged(int state)
这是自动连接的。
MainWindow的构造函数就像这样
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
{
ui->setupUi(this);
setupWidgets();
}
在setupWidgets
中,我设置了复选框的值
ui->checkBoxPhaseUnwrap->setChecked(true);
但是未调用插槽,因此后台中的数据库未更新。
显示窗口后,我可以单击复选框,照常调用插槽。当我调用setChecked
时为什么不调用它注意:在gui设计器中,默认值已经是checked
。这是什么原因?
答案 0 :(得分:2)
在gui设计器中,已经检查了默认值。这是什么原因?
是void QCheckBox::stateChanged(int state)
每当复选框的状态发生变化时,即每当用户检查或取消选中状态时,都会发出此信号。
这意味着如果您尝试将状态从Qt::Checked
更改为Qt::Checked
,则不会发出此消息。
解决方案将自己发出信号:
在setupWidgets
添加
emit ui->checkBoxPhaseUnwrap->stateChanged(Qt::Checked);