QTableView显示数据时,双击表格默认情况下是显示Spin控件,但很多情况下需要显示ComboBox,这需要为TableView增加ComBox代理
Combox代理头文件代码:
#pragma once
// ComboBoxDelegate.h
#include <QItemDelegate>
class ComboDelegate : public QItemDelegate
{
Q_OBJECT
public:
ComboDelegate(const QStringList &items, 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;
int nOpIndex = 0;
signals:
void CurrentIndexChangeSignal(int iRow, int iColumn) const; //定义消息必须有const
private slots :
private:
QStringList myItems;
};
Combox代理CPP文件代码:
#include "ComboDelegat