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