我的课程QTableView
和QItemDelegate
课程有问题。对于一列,我的代表创建了一个简单的组合框,一切正常。对于我的第二列,我需要一个在一个小部件中包含两个组合框的小部件。
我已经在我的 中编写了以下代码QItemDelegate
,为了清楚起见,这仅显示了我的第二列的代码,即不起作用的代码。另一个简单的组合框没有显示,因为它工作正常:
QWidget *UserDefinedUnitsDelegate::createEditor(QWidget *parent,const QStyleOptionViewItem & option ,const QModelIndex & index ) const
{
//set up a simple widget with a layout
QWidget* pWidget = new QWidget(parent);
QHBoxLayout* hLayout = new QHBoxLayout(pWidget);
pWidget->setLayout(hLayout);
//add two combo boxes to the layout
QComboBox* comboEditor = new QComboBox(pWidget);
QComboBox* comboEditor2 = new QComboBox(pWidget);
//now add both editors to this
hLayout->addWidget(comboEditor);
hLayout->addWidget(comboEditor2);
return pWidget;
}
现在这显示得很好,但是当我编辑它并单击其他地方时,它不会停止编辑。任何人都可以提供任何指示吗?
编辑:所以我需要在某个时候调用 CommitData() 和 closeEditor() 。任何人都可以提供有关在哪里调用这些的指示吗?
谢谢。