qt combox 表格;表格中数据可输入

表格中含有COMBOX,如何使QT中的combox选项中的值被选中后该行上其他位置处的数值自动被填进表格内??而且要求选中后该行上的数据是可改变输入的。求详细代码

可以使用model/view框架,修改数据用delegate

都有现成的类,没有合适的可以继承他现有的再自己实现。
模型类QAbstractItemModel: 链表模型QAbstractListModel 表格模型QAbstractTableModel 标准模型QAbstandModel
视图类QAbstractItemView: QListView QTableView QTreeView ...
委托类QItemDelegate
这是我代码中的一段,继承QItemDelegate的一个类的实现,仅供参考 希望对你有帮助。
ValDelegate::ValDelegate(int Column,QObject *parent) :
QItemDelegate(parent)
{
this->Column = Column;
}

QWidget* ValDelegate::createEditor(QWidget parent,
const QStyleOptionViewItem &option,const QModelIndex &index) const
{
if(index.column()%2)
{
int secs = index.model()->data(index, Qt::DisplayRole).toInt();
QSpinBox
box = new QSpinBox(parent);
box->setMaximum(99999);
box->setMinimum(0);
box->setAlignment(Qt::AlignHCenter);
box->setValue((short)secs);
connect(box, SIGNAL(editingFinished()),this, SLOT(CommitAndCloseEditor()));
return box;
}
else
return QItemDelegate::createEditor(parent, option, index);
}

void ValDelegate::setEditorData(QWidget editor, const QModelIndex &index) const
{
if (index.column()%2)
{
int secs = index.model()->data(index, Qt::DisplayRole).toInt();
QSpinBox
box = qobject_cast(editor);
box->resize(100,30);
QPoint pos = box->pos();
//pos.setX(pos.rx()+10);
pos.setY(pos.ry()+5);
box->move(pos);
box->setValue((short)secs);
}
else
QItemDelegate::setEditorData(editor, index);
}

void ValDelegate::setModelData(QWidget editor, QAbstractItemModel model,
const QModelIndex &index) const
{
if (index.column()%2)
{
QSpinBox* box = qobject_cast(editor);
short secs = (short)box->value();

    ((YcModel*)model)->setData(index, secs);

}
else
    QItemDelegate::setModelData(editor, model, index);

}

void ValDelegate::CommitAndCloseEditor()
{
QSpinBox* box = qobject_cast(sender());

emit commitData(box);
emit closeEditor(box);

}


谢谢您的回答,我初学,还是有些看不懂,我想知道combox选项中的内容怎么和后续表格中的数据关联起来?

model、view和delegate 之间大概的关系就是这样
图片说明
当修改你数据结构的时候,model中的数据会自动修改,View显示的数据也随之更改,当通过delegate修改view中的数据时model中的也随之更改
下面是我的项目中的代码,这个网页的代码片看代码很不爽,我就直接截图吧
图片说明
新建一个model 和 delegate
将model与我的链表绑定
tableView是UI中建立的,将tableView与delegate绑定
将tableView与model绑定