class ComboDelegate : public QItemDelegate
{
Q_OBJECT
public:
ComboDelegate(QObject *parent = 0)
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
void setEditorData(QWidget *editor, const QModelIndex &index) const
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
}
实现里面声明的方法,具体参考帮助文档。
然后,在表中,为某一列设置代理
比如,第二列
pComboDelegate = new ComboDelegate()
pTable->setItemDelegateForColumn(1, pComboDelegate)
这样,每行的第二列,需要编辑时,双击,就会出现combobox了
可以,你可以参考assitant中的说明void QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget)
Sets the widget to be displayed in the given item.
This function should only be used to display static content in the place of a list widget item. If you want to display custom dynamic content or implement a custom editor widget, use QListView and subclass QItemDelegate instead.
上面的翻译:
该函数应该只用来在一个list widget item位置显示静态内容。如果你想要显示自定义动态内容或实现一个自定义编辑控件,使用QListView和子类化QItemDelegate代替。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)