| | |
| | | #include "comboboxdelegate.h" |
| | | #include <QFileDialog> |
| | | |
| | | ComboBoxDelegate::ComboBoxDelegate(QStringList labels,QObject *parent) |
| | | #pragma execution_character_set("utf-8") |
| | | |
| | | ComboBoxDelegate::ComboBoxDelegate(QStringList labels,QObject *parent,bool edit) |
| | | :QItemDelegate(parent), |
| | | m_labels(labels) |
| | | 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)); |
| | | } |
| | |
| | | |
| | | void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const |
| | | { |
| | | QString val = ((QComboBox*)editor)->currentText(); |
| | | model->setData(index,val); |
| | | |
| | | |
| | | 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); |
| | | } |
| | | } |