#include "comboboxdelegate.h"
|
#include <QFileDialog>
|
|
ComboBoxDelegate::ComboBoxDelegate(QStringList labels,QObject *parent,bool edit)
|
:QItemDelegate(parent),
|
m_labels(labels),
|
m_edit(edit)
|
{
|
|
}
|
|
QWidget *ComboBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
|
{
|
QComboBox *cbb = new QComboBox(parent);
|
cbb->setEditable(m_edit);
|
for(int i=0;i<m_labels.size();++i){
|
cbb->addItem(m_labels.at(i));
|
}
|
return cbb;
|
}
|
|
void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
|
{
|
|
|
if(m_edit){// 可编辑状态
|
int idx = ((QComboBox*)editor)->currentIndex();
|
if(idx == 1){ // 需要上传
|
QString fileName = QFileDialog::getOpenFileName();
|
model->setData(index,fileName);
|
}else if(idx == 0){ // 录入
|
;
|
}else{
|
QString val = ((QComboBox*)editor)->currentText();
|
model->setData(index,val);
|
}
|
}else{
|
QString val = ((QComboBox*)editor)->currentText();
|
model->setData(index,val);
|
}
|
}
|