From fb90b6016c0db6e9f45b072854aa9a5d6825a94b Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期三, 08 五月 2024 22:16:20 +0800
Subject: [PATCH] 0508

---
 internal_system_v1/filedialogdelegate.cpp    |   31 +++++++++++++++
 internal_system_v1/threemergeproblemlist.cpp |    5 ++
 internal_system_v1/clientmainwindow.ui       |    4 +-
 internal_system_v1/internal_system_v1.pro    |    6 ++-
 internal_system_v1/filedialogdelegate.h      |   20 ++++++++++
 internal_system_v1/threemergeproblemlist.h   |    4 ++
 6 files changed, 66 insertions(+), 4 deletions(-)

diff --git a/internal_system_v1/clientmainwindow.ui b/internal_system_v1/clientmainwindow.ui
index d3da8b2..2698696 100644
--- a/internal_system_v1/clientmainwindow.ui
+++ b/internal_system_v1/clientmainwindow.ui
@@ -18,7 +18,7 @@
     <item row="0" column="0">
      <widget class="QTabWidget" name="tabWidget">
       <property name="currentIndex">
-       <number>0</number>
+       <number>2</number>
       </property>
       <widget class="QWidget" name="tab">
        <attribute name="title">
@@ -205,7 +205,7 @@
       </widget>
       <widget class="QWidget" name="tab_4">
        <attribute name="title">
-        <string>缁煎悎褰曞叆</string>
+        <string>鍐呴儴瀹¤缁熻缁煎悎琛�</string>
        </attribute>
        <layout class="QGridLayout" name="gridLayout">
         <item row="0" column="0">
diff --git a/internal_system_v1/filedialogdelegate.cpp b/internal_system_v1/filedialogdelegate.cpp
new file mode 100644
index 0000000..1a055ac
--- /dev/null
+++ b/internal_system_v1/filedialogdelegate.cpp
@@ -0,0 +1,31 @@
+锘�#include "filedialogdelegate.h"
+#include <QFileDialog>
+#include <QDebug>
+
+FileDialogDelegate::FileDialogDelegate(QObject *parent):QItemDelegate(parent)
+{
+
+}
+
+QWidget *FileDialogDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+    QFileDialog *fd = new QFileDialog(parent);
+    return fd;
+}
+
+void FileDialogDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+    editor->setGeometry(option.rect);
+}
+
+void FileDialogDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
+{
+    QString fn = ((QFileDialog *)editor)->getOpenFileName();
+    qDebug()<<index<<fn;
+    index.model()->setData(index,fn);
+}
+
+void FileDialogDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
+{
+
+}
diff --git a/internal_system_v1/filedialogdelegate.h b/internal_system_v1/filedialogdelegate.h
new file mode 100644
index 0000000..618f0f4
--- /dev/null
+++ b/internal_system_v1/filedialogdelegate.h
@@ -0,0 +1,20 @@
+锘�#ifndef FILEDIALOGDELEGATE_H
+#define FILEDIALOGDELEGATE_H
+
+#include <QItemDelegate>
+
+
+
+class FileDialogDelegate : public QItemDelegate
+{
+    Q_OBJECT
+public:
+    FileDialogDelegate(QObject *parent=0);
+
+    QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+    void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+    void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
+    void setEditorData(QWidget *editor, const QModelIndex &index) const;
+};
+
+#endif // FILEDIALOGDELEGATE_H
diff --git a/internal_system_v1/internal_system_v1.pro b/internal_system_v1/internal_system_v1.pro
index 8c8d5e2..c969f34 100644
--- a/internal_system_v1/internal_system_v1.pro
+++ b/internal_system_v1/internal_system_v1.pro
@@ -41,7 +41,8 @@
     problemlist.cpp \
     problemrectificationresult.cpp \
     tableitemdelegate.cpp \
-    threemergeproblemlist.cpp
+    threemergeproblemlist.cpp \
+    filedialogdelegate.cpp
 
 HEADERS += \
         clientmainwindow.h \
@@ -61,7 +62,8 @@
     problemlist.h \
     problemrectificationresult.h \
     tableitemdelegate.h \
-    threemergeproblemlist.h
+    threemergeproblemlist.h \
+    filedialogdelegate.h
 
 FORMS += \
         clientmainwindow.ui \
diff --git a/internal_system_v1/threemergeproblemlist.cpp b/internal_system_v1/threemergeproblemlist.cpp
index 1fbe13f..34d641f 100644
--- a/internal_system_v1/threemergeproblemlist.cpp
+++ b/internal_system_v1/threemergeproblemlist.cpp
@@ -10,6 +10,9 @@
     ui(new Ui::ThreeMergeProblemList)
 {
     ui->setupUi(this);
+
+    m_fdd = new FileDialogDelegate;
+
     ui->statusbar->hide();
     ui->menubar->hide();
     initUi(); // 鍒濆鍖栨墍鏈夌晫闈�
@@ -30,6 +33,8 @@
     ui->tableWidget->setMinimumHeight(500);  // 鏁存敼鍙拌处
     ui->tableWidget_2->setMinimumHeight(500); // 鏁存敼缁撴灉
     ui->tableWidget_3->setMinimumHeight(500); // 闂娓呭崟
+
+    ui->tableWidget->setItemDelegateForColumn(1,m_fdd);
     // 鍔犺浇鍏徃鍚�
     readCompanyFromSQL();
 }
diff --git a/internal_system_v1/threemergeproblemlist.h b/internal_system_v1/threemergeproblemlist.h
index 3a5fbf5..c8be580 100644
--- a/internal_system_v1/threemergeproblemlist.h
+++ b/internal_system_v1/threemergeproblemlist.h
@@ -6,6 +6,8 @@
 #include <QMenu>
 #include <QAction>
 
+#include "filedialogdelegate.h"
+
 namespace Ui {
 class ThreeMergeProblemList;
 }
@@ -56,6 +58,8 @@
     QMenu *m_menu; // 闂娓呭崟鑿滃崟
     QMenu *m_menuResult; // 鏁存敼鎴愭灉
     QMenu *m_menuRectBook; // 鏁存敼鍙拌处
+
+    FileDialogDelegate *m_fdd;
 };
 
 #endif // THREEMERGEPROBLEMLIST_H

--
Gitblit v1.8.0