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