From d30dc03e636b4dd2a878bc3f290a084c73b5b0d1 Mon Sep 17 00:00:00 2001 From: sunwen Date: Tue, 21 Nov 2023 15:45:27 +0800 Subject: [PATCH] Fix patient list sort by add date. --- src/forms/select/PatientAddDateDelegate.cpp | 21 +++++++++++++++++++++ src/forms/select/PatientAddDateDelegate.h | 15 +++++++++++++++ src/forms/select/SelectFormWidget.cpp | 8 +++++++- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/forms/select/PatientAddDateDelegate.cpp create mode 100644 src/forms/select/PatientAddDateDelegate.h diff --git a/src/forms/select/PatientAddDateDelegate.cpp b/src/forms/select/PatientAddDateDelegate.cpp new file mode 100644 index 0000000..dfb41a4 --- /dev/null +++ b/src/forms/select/PatientAddDateDelegate.cpp @@ -0,0 +1,21 @@ +#include "PatientAddDateDelegate.h" + +#include +#include + +PatientAddDateDelegate::PatientAddDateDelegate(QObject* aParent) + : QStyledItemDelegate(aParent) +{ + +} + +void PatientAddDateDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const +{ + QVariant data = index.data(Qt::DisplayRole); + if (data.isValid()) + { + QDateTime datetime = data.toDateTime(); + QString dateStr = datetime.toString("yyyy-MM-dd HH:mm"); + painter->drawText(option.rect, Qt::AlignCenter, dateStr); + } +} diff --git a/src/forms/select/PatientAddDateDelegate.h b/src/forms/select/PatientAddDateDelegate.h new file mode 100644 index 0000000..6029822 --- /dev/null +++ b/src/forms/select/PatientAddDateDelegate.h @@ -0,0 +1,15 @@ +#ifndef PATIENTADDDATEDELEGATE_H +#define PATIENTADDDATEDELEGATE_H + +#include + +class PatientAddDateDelegate : public QStyledItemDelegate +{ + Q_OBJECT +public: + PatientAddDateDelegate(QObject* aParent); + + void paint(QPainter *aPainter, const QStyleOptionViewItem &aOption, const QModelIndex &aIndex) const override; +}; + +#endif // PATIENTADDDATEDELEGATE_H diff --git a/src/forms/select/SelectFormWidget.cpp b/src/forms/select/SelectFormWidget.cpp index 9475733..e8c4898 100644 --- a/src/forms/select/SelectFormWidget.cpp +++ b/src/forms/select/SelectFormWidget.cpp @@ -20,6 +20,7 @@ #include "dialogs/DialogManager.h" #include "log/UserOperationLog.h" #include "components/VerticalTextToolButton.h" +#include "PatientAddDateDelegate.h" SelectFormWidget::SelectFormWidget(QWidget* parent) : TabFormWidget(parent) @@ -198,7 +199,9 @@ void SelectFormWidget::initDetailPanel(QHBoxLayout *contentLayout) {// prepare e connect(patientDetailForm, &PatientDetailForm::deleteClicked, this, &SelectFormWidget::delPatient); } -void SelectFormWidget::initTableView(QHBoxLayout *contentLayout) {// TableView for patient +void SelectFormWidget::initTableView(QHBoxLayout *contentLayout) +{ + // TableView for patient mPatTable->setAlternatingRowColors(true); mPatTable->setSelectionMode(QAbstractItemView::SingleSelection); mPatTable->setEditTriggers(QAbstractItemView::NoEditTriggers); @@ -238,6 +241,9 @@ void SelectFormWidget::initTableView(QHBoxLayout *contentLayout) {// TableView f mModel->selectRow(0); } }); + + PatientAddDateDelegate* patientAddDateDelegate = new PatientAddDateDelegate(mPatTable); + mPatTable->setItemDelegateForColumn(6, patientAddDateDelegate); } void SelectFormWidget::initDataModel() {//TODO:单独初始化预防SQL错误