以编程方式更改时,不会发出QstandardItemModel信号

时间:2013-10-01 15:10:52

标签: c++ qt

我目前有一个QStandardItemModel。模型本身有两列,一列是文本列,另一列是复选框。现在我将信号连接到我的代码中的插槽

QObject::connect(model,SIGNAL(itemChanged(QStandardItem*)),
this,SLOT(ColumnChecked(QStandardItem*))); //Column to filter checked

现在,当用户在表单中进行更改时,此信号正常工作。即,当用户使用表单时。但是,如果我从代码中选中一个框,则不会发出信号。例如,如果我这样:

model->item(i,1)->setCheckState(Qt::CheckState::Checked);

未调用插槽。所以我必须这样做才能在进行更改后调用插槽

Column_Model->item(i,1)->setCheckState(Qt::CheckState::Checked);    
ColumnChecked(Column_Model->item(i,1));

你能告诉我这是正常行为还是我做错了什么?即使我在代码中对模型进行了更改,我也希望调用插槽。

0 个答案:

没有答案