From 20ffcfb5507daf34f81346ca3dfa4c031e7b2fe3 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期日, 27 四月 2025 22:13:53 +0800 Subject: [PATCH] 0427 --- internal_system_v1/comboboxdelegate.cpp | 28 ++++++++++++++++++++++++---- 1 files changed, 24 insertions(+), 4 deletions(-) diff --git a/internal_system_v1/comboboxdelegate.cpp b/internal_system_v1/comboboxdelegate.cpp index e5fde68..4c46f52 100644 --- a/internal_system_v1/comboboxdelegate.cpp +++ b/internal_system_v1/comboboxdelegate.cpp @@ -1,8 +1,12 @@ 锘�#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) { } @@ -10,6 +14,7 @@ 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)); } @@ -18,6 +23,21 @@ 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); + } } -- Gitblit v1.8.0