在customDelegate中更改Qdoublespinxbox的值时发出信号

时间:2013-09-29 07:10:41

标签: qt qtablewidget emit

我有子类qstyleditemdelegate

在col == 1和col == 2我有创建Qdoublespinxboxs,我想发出valuechanged of my

Qdoublespinxbox,计算小计(col1 * col2)

表示:代理人

每次Qdoublespinxbox的值发生变化时,我都会更新值小计

2 个答案:

答案 0 :(得分:3)

在委托类中创建一个插槽:

void My_delegate::valueChanged() {
  emit commitData(sender());
}

My_delegate::createEditor中将spinbox的valueChanged()信号连接到My_delegate::valueChanged

确保在委托类中正确实现setEditorData方法。在此方法中,您应该根据spinbox的值设置模型的数据。当您发出commitData时,将自动调用此方法。

现在,当用户编辑一个旋转框时,数据会立即进入模型。您可以使用模型的dataChanged信号来跟踪数据更改。

答案 1 :(得分:1)

您可以向QStyledItemDelegate子类添加信号,在 setModelData()重新实现中发出。信号应包含有关新值和可能的数据定位的信息。在其他类中捕获信号并更新值小计。