diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index beaa147..e0d6234 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -13,6 +13,7 @@ qt5_wrap_ui(UI_HEADERS add_executable(${PROJECT_NAME} LogoTest.cpp testdata.cpp + MetaDataModel.cpp mainwindow.cpp ${UI_HEADERS} ) diff --git a/source/MetaDataModel.cpp b/source/MetaDataModel.cpp new file mode 100644 index 0000000..270b0d5 --- /dev/null +++ b/source/MetaDataModel.cpp @@ -0,0 +1,41 @@ +#include "MetaDataModel.h" + +#include + +MetaDataModel::MetaDataModel(QObject *parent) : QAbstractTableModel(parent) +{ +} + +int MetaDataModel::rowCount(const QModelIndex &parent) const +{ + return 1; +} + +int MetaDataModel::columnCount(const QModelIndex &parent) const +{ + return 5; +} + +QVariant MetaDataModel::data(const QModelIndex &index, int role) const +{ + if (role == Qt::DisplayRole || role == Qt::EditRole) + { + switch (index.column()) + { + case 0: + return m_participant; + case 1: + return m_instructor; + case 2: + return m_dateOfBirth; + case 3: + return m_dateOfTest; + case 4: + return m_remarks; + default: + return QVariant(); + } + } + + return QVariant(); +} diff --git a/source/MetaDataModel.h b/source/MetaDataModel.h new file mode 100644 index 0000000..693cf42 --- /dev/null +++ b/source/MetaDataModel.h @@ -0,0 +1,24 @@ +#pragma once + +#include +#include +#include + +class MetaDataModel : public QAbstractTableModel +{ + Q_OBJECT + +private: + QString m_participant; + QString m_instructor; + QDate m_dateOfBirth; + QDate m_dateOfTest; + QString m_remarks; + +public: + MetaDataModel(QObject *parent); + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data( + const QModelIndex &index, int role = Qt::DisplayRole) const override; +}; diff --git a/source/mainwindow.cpp b/source/mainwindow.cpp index ba3cf3f..802ce8f 100644 --- a/source/mainwindow.cpp +++ b/source/mainwindow.cpp @@ -2,10 +2,12 @@ #include "ui_mainwindow.h" #include "testdata.h" +#include "MetaDataModel.h" #include #include #include #include +#include MainWindow::MainWindow(QWidget *parent) @@ -15,6 +17,19 @@ MainWindow::MainWindow(QWidget *parent) ui->actionSave_as->setIcon(QIcon::fromTheme("document-save-as", QIcon("/usr/share/gtk-doc/html/gtk2/document-save-as.png"))); connect(ui->actionSave_as, SIGNAL(triggered()), this, SLOT(saveAs())); + + MetaDataModel *metaDataModel = new MetaDataModel(this); + + QDataWidgetMapper *mapper = new QDataWidgetMapper(this); + mapper->setModel(metaDataModel); + mapper->addMapping(ui->lineEdit, 0); + mapper->addMapping(ui->lineEdit_2, 1); + mapper->addMapping(ui->calendarWidget, 2); + mapper->addMapping(ui->calendarWidget_2, 3); + mapper->addMapping(ui->textEdit, 4); + mapper->toFirst(); + + //ui->tableView->setModel(metaDataModel); } MainWindow::~MainWindow() diff --git a/source/mainwindow.ui b/source/mainwindow.ui index 14a18a9..a58e93e 100644 --- a/source/mainwindow.ui +++ b/source/mainwindow.ui @@ -104,6 +104,9 @@ + + +