diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..73f69e0
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/GUI.iml b/.idea/GUI.iml
new file mode 100644
index 0000000..f08604b
--- /dev/null
+++ b/.idea/GUI.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..a1d0f40
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ sqlite.xerial
+ true
+ org.sqlite.JDBC
+ jdbc:sqlite:$PROJECT_DIR$/../Database/USCTDB.data
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..8822db8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..4c064bc
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..3f8fc9e
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 2.8)
+set(PROJECT_NAME GUI)
+project(${PROJECT_NAME})
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+file(GLOB project_headers ./src/*.h)
+file(GLOB project_cpps ./src/*.cpp)
+file(GLOB project_cxx ./src/*.cxx)
+file(GLOB project_cc ./src/*.cc)
+include_directories(./src/)
+
+find_package(Qt5 COMPONENTS Core Widgets Gui OpenGL REQUIRED)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+file(GLOB project_uis ./src/*.ui)
+qt5_wrap_ui(ui_FILES ${project_uis})
+file(GLOB project_res ./src/*.qrc)
+add_executable(${PROJECT_NAME} ${project_headers} ${project_cpps} ${project_cxx} ${project_res} ${project_cc} ${ui_FILES})
+target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets Qt5::Gui Qt5::OpenGL)
+
+if(MSVC)
+ set_target_properties(${PROJECT_NAME} PROPERTIES VS_DEBUGGER_ENVIRONMENT "path=${Qt5_DIR}/../../../bin/")
+endif(MSVC)
diff --git a/src/ScanFormWidget.cpp b/src/ScanFormWidget.cpp
new file mode 100644
index 0000000..cf5a67b
--- /dev/null
+++ b/src/ScanFormWidget.cpp
@@ -0,0 +1,88 @@
+//
+// Created by Krad on 2021/10/8.
+//
+
+#include "ScanFormWidget.h"
+#include
+#include
+#include
+#include "ui_tabformwidget.h"
+#include "guimacros.h"
+#include "patientinformationform.h"
+#include
+
+ScanFormWidget::ScanFormWidget(QWidget *parent) : TabFormWidget(parent) {
+ const char* style="QWidget#PatientInformationForm{min-width:300px;max-width:300px; margin-right:10}"
+ "QWidget#patientinformation_panel{ border-right:1px solid #0078d8}"
+ "QWidget#patientinformation_panel QLabel{font-size:20px; }"
+ "QWidget#param_widget{min-width:300px;max-width:300px;border-left:1px solid #0078d8}"
+ "QWidget#broadcast_widget{border:2px solid #515151; border-radius: 20px}"
+ "QLabel#lbl_protocol{font-size:32px; margin:0; color:silver}"
+ "QLabel#lbl_title,QLabel#lbl_ptitle{font-size:20px;margin:0; border-bottom:1px solid silver}"
+ "QLabel#lbl_end{font-size:32px;margin:0; border-top:1px solid #0078d8}"
+ "";
+ this->setStyleSheet(this->styleSheet().append(style));
+ QHBoxLayout* layout =new QHBoxLayout();
+ ui->commandWidget->setLayout(layout);
+
+ QLabel* lbl_Protocol = new QLabel(this);
+ lbl_Protocol->setText("Protocol");
+ lbl_Protocol->setAlignment(Qt::AlignTop);
+ lbl_Protocol->setObjectName("lbl_protocol");
+ layout->addWidget(lbl_Protocol);
+ QWidget* spacerLine= new QWidget(this);
+ spacerLine->setFixedWidth(2);
+ spacerLine->setObjectName("verSpaceLine");
+ layout->addWidget(spacerLine);
+ ADD_TOOL_BTN(Left,":/icons/left.png");
+ ADD_TOOL_BTN(Right,":/icons/right.png");
+ QButtonGroup* group = new QButtonGroup(this);
+
+// btnLeft->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+// btnLeft->setText("Left");
+ btnLeft->setCheckable(true);
+ btnLeft->setChecked(true);
+// btnRight->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+// btnRight->setText("Right");
+ btnRight->setCheckable(true);
+ group->addButton(btnRight);
+ group->addButton(btnLeft);
+ layout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
+ QWidget* spacerLine2= new QWidget(this);
+ spacerLine2->setFixedWidth(2);
+ spacerLine2->setObjectName("verSpaceLine");
+ layout->addWidget(spacerLine2);
+ ADD_TOOL_BTN(Refresh,":/icons/scan_e.png");
+ ADD_TOOL_BTN(Preview,":/icons/rec.png");
+
+ ADD_TOOL_BTN(Stop,":/icons/stop.png");
+ ADD_TOOL_BTN(Scan,":/icons/scan.png");
+
+ QHBoxLayout* contentLayout =new QHBoxLayout();
+ this->ui->contentWidget->setLayout(contentLayout);
+ PatientInformationForm* patient_information= new PatientInformationForm(this);
+ contentLayout->addWidget(patient_information);
+ QWidget* param_widget= new QWidget(this);
+ QWidget* broadcast_widget = new QWidget(this);
+ broadcast_widget->setObjectName("broadcast_widget");
+ QLabel * viewer = new QLabel(broadcast_widget);
+
+ viewer->setText("");
+ QHBoxLayout* viewerLayout =new QHBoxLayout(viewer);
+ broadcast_widget->setLayout(viewerLayout);
+ viewerLayout->addWidget(viewer);
+ contentLayout->addWidget(broadcast_widget);
+ param_widget->setObjectName("param_widget");
+ QVBoxLayout* paramLayout =new QVBoxLayout(param_widget);
+ QLabel* lblParams = new QLabel(this);
+ lblParams->setText("Scan Parameters");
+ lblParams->setObjectName("lbl_title");
+ paramLayout->addWidget(lblParams);
+ paramLayout->addSpacerItem(new QSpacerItem(20,20,QSizePolicy::Minimum,QSizePolicy::Expanding));
+ contentLayout->addWidget(param_widget);
+
+}
+
+ScanFormWidget::~ScanFormWidget() {
+
+}
diff --git a/src/ScanFormWidget.h b/src/ScanFormWidget.h
new file mode 100644
index 0000000..032bd13
--- /dev/null
+++ b/src/ScanFormWidget.h
@@ -0,0 +1,17 @@
+//
+// Created by Krad on 2021/10/8.
+//
+
+#ifndef GUI_SCANFORMWIDGET_H
+#define GUI_SCANFORMWIDGET_H
+
+#include "tabformwidget.h"
+class ScanFormWidget :public TabFormWidget {
+ Q_OBJECT
+public:
+ explicit ScanFormWidget(QWidget *parent = nullptr);
+ ~ScanFormWidget();
+};
+
+
+#endif //GUI_SCANFORMWIDGET_H
diff --git a/src/SelectFormWidget.cpp b/src/SelectFormWidget.cpp
new file mode 100644
index 0000000..4feb70d
--- /dev/null
+++ b/src/SelectFormWidget.cpp
@@ -0,0 +1,85 @@
+//
+// Created by Krad on 2021/10/8.
+//
+#include "ui_tabformwidget.h"
+#include "SelectFormWidget.h"
+#include
+#include
+#include
+#include
+#include "editpatientform.h"
+#include "guimacros.h"
+
+
+SelectFormWidget::SelectFormWidget(QWidget *parent) :
+ TabFormWidget(parent)
+{
+ const char* style="QHeaderView::section{background-color:#595959;"
+ " min-height:50px;max-height:50px;"
+ "font-weight:Bold; font-size:16px; border:1px solid #323232;}"
+ "QHeaderView::section:horizontal{border-bottom: 1px solid rgb(0,170,255);}"
+ "QHeaderView::section:vertical{min-height:36px;max-height:36px;}"
+ "QWidget#edit_patient{min-width:300px;max-width:300px;}"
+// "QTableWidget{border:1px solid #323232}"
+ "QTableWidget{border:none}"
+ "QTableView{alternate-background-color: #595959;}"
+ ;
+ this->setStyleSheet(this->styleSheet().append(style));
+ QHBoxLayout* layout =new QHBoxLayout();
+ ui->commandWidget->setLayout(layout);
+ ADD_TOOL_BTN(Account,":/icons/account.png");
+ ADD_TOOL_BTN(Setting,":/icons/setting.png");
+
+ layout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
+ QWidget* spacerLine= new QWidget(this);
+ spacerLine->setFixedWidth(2);
+ spacerLine->setObjectName("verSpaceLine");
+ layout->addWidget(spacerLine);
+ ADD_TOOL_BTN(Add,":/icons/add.png");
+ ADD_TOOL_BTN(Detail,":/icons/details.png");
+ ADD_TOOL_BTN(Delete,":/icons/close_circle.png");
+ ADD_TOOL_BTN(Select,":/icons/selected.png");
+ QHBoxLayout* contentLayout =new QHBoxLayout();
+ this->ui->contentWidget->setLayout(contentLayout);
+ QStringList header;
+ header<<"ID"<<"Name"<<"Sex"<<"DOB"<<"Status"<<"Comment";
+ QTableWidget* table= new QTableWidget(this);
+ table->setAlternatingRowColors(true);
+ table->setSelectionMode(QAbstractItemView::SingleSelection);
+ table->setSelectionBehavior(QAbstractItemView::SelectRows);
+ table->setColumnCount(6);
+ table->verticalHeader()->setDefaultSectionSize(38);
+ table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+ table->setHorizontalHeaderLabels(header);
+ table->setRowCount(3);
+ table->setItem(0,0,new QTableWidgetItem("Pat010012313"));
+ table->setItem(0,1,new QTableWidgetItem("XXX"));
+ table->setItem(0,2,new QTableWidgetItem("Female"));
+ table->setItem(0,3,new QTableWidgetItem("1978/09/06"));
+ table->setItem(0,4,new QTableWidgetItem("Added"));
+ table->setItem(0,5,new QTableWidgetItem(""));
+ table->setItem(1,0,new QTableWidgetItem("Pat0222222"));
+ table->setItem(1,1,new QTableWidgetItem("XXX2"));
+ table->setItem(1,2,new QTableWidgetItem("Female"));
+ table->setItem(1,3,new QTableWidgetItem("1993/08/16"));
+ table->setItem(1,4,new QTableWidgetItem("Scanned"));
+ table->setItem(1,5,new QTableWidgetItem(""));
+ table->setItem(2,0,new QTableWidgetItem("Pat3"));
+ table->setItem(2,1,new QTableWidgetItem("XX3"));
+ table->setItem(2,2,new QTableWidgetItem("Female"));
+ table->setItem(2,3,new QTableWidgetItem("1999/08/16"));
+ table->setItem(2,4,new QTableWidgetItem("Scanned"));
+ table->setItem(2,5,new QTableWidgetItem(""));
+ contentLayout->addWidget(table);
+ QWidget* spacerLine2= new QWidget(this);
+ spacerLine2->setFixedWidth(2);
+ spacerLine2->setObjectName("verSpaceLine");
+ contentLayout->addWidget(spacerLine2);
+ EditPatientForm* edit_patient= new EditPatientForm(this);
+ edit_patient->setObjectName("edit_patient");
+ contentLayout->addWidget(edit_patient);
+}
+
+SelectFormWidget::~SelectFormWidget()
+{
+}
\ No newline at end of file
diff --git a/src/SelectFormWidget.h b/src/SelectFormWidget.h
new file mode 100644
index 0000000..8df261d
--- /dev/null
+++ b/src/SelectFormWidget.h
@@ -0,0 +1,18 @@
+//
+// Created by Krad on 2021/10/8.
+//
+
+#ifndef GUI_SELECTFORMWIDGET_H
+#define GUI_SELECTFORMWIDGET_H
+
+#include "tabformwidget.h"
+class SelectFormWidget: public TabFormWidget {
+ Q_OBJECT
+public:
+ explicit SelectFormWidget(QWidget *parent = nullptr);
+ ~SelectFormWidget();
+
+};
+
+
+#endif //GUI_SELECTFORMWIDGET_H
diff --git a/src/editpatientform.cpp b/src/editpatientform.cpp
new file mode 100644
index 0000000..3ff617d
--- /dev/null
+++ b/src/editpatientform.cpp
@@ -0,0 +1,43 @@
+#include "editpatientform.h"
+#include "ui_editpatientform.h"
+#include
+#include
+#include
+#include "guimacros.h"
+EditPatientForm::EditPatientForm(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::EditPatientForm)
+{
+ ui->setupUi(this);
+ QListView* sex_v = new QListView(ui->cb_Sex);
+ sex_v->setItemAlignment(Qt::AlignCenter);
+ ui->cb_Sex->setView(sex_v);
+ QListView* year_v = new QListView();
+// year_v->setItemAlignment()
+ ui->cb_Year->setView(year_v);
+ for (int i = 1910;i<2022;i++)
+ {
+ ui->cb_Year->addItem(QString("%1").arg(i));
+ }
+ ui->cb_Month->setView(new QListView());
+ ui->cb_Day->setView(new QListView());
+ for (int i = 1;i<31;i++)
+ {
+ ui->cb_Day->addItem(QString("%1").arg(i));
+ }
+ QHBoxLayout* layout =new QHBoxLayout();
+ this->ui->editcmdWidget->setLayout(layout);
+ ADD_TOOL_BTN(Cancel,":/icons/close_circle.png");
+ ADD_TOOL_BTN(Accpet,":/icons/selected.png");
+ btnCancel->setEnabled(false);
+ btnCancel->setToolButtonStyle(Qt::ToolButtonIconOnly);
+ btnCancel->setIcon(QIcon(":/icons/close_circle_d.png"));
+ btnAccpet->setEnabled(false);
+ btnAccpet->setToolButtonStyle(Qt::ToolButtonIconOnly);
+ btnAccpet->setIcon(QIcon(":/icons/selected_d.png"));
+}
+
+EditPatientForm::~EditPatientForm()
+{
+ delete ui;
+}
diff --git a/src/editpatientform.h b/src/editpatientform.h
new file mode 100644
index 0000000..b81e81c
--- /dev/null
+++ b/src/editpatientform.h
@@ -0,0 +1,22 @@
+#ifndef EDITPATIENTFORM_H
+#define EDITPATIENTFORM_H
+
+#include
+
+namespace Ui {
+class EditPatientForm;
+}
+
+class EditPatientForm : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit EditPatientForm(QWidget *parent = nullptr);
+ ~EditPatientForm();
+
+private:
+ Ui::EditPatientForm *ui;
+};
+
+#endif // EDITPATIENTFORM_H
diff --git a/src/editpatientform.ui b/src/editpatientform.ui
new file mode 100644
index 0000000..12bf4f8
--- /dev/null
+++ b/src/editpatientform.ui
@@ -0,0 +1,220 @@
+
+
+ EditPatientForm
+
+
+
+ 0
+ 0
+ 400
+ 466
+
+
+
+ Form
+
+
+
+ 3
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
-
+
+
+ ID
+
+
+
+ -
+
+
+ -
+
+
+ Name
+
+
+
+ -
+
+
+ -
+
+
+ Sex
+
+
+
+ -
+
+
+ alignment:center
+
+
+ 1
+
+
+ true
+
+
-
+
+ Male
+
+
+ -
+
+ Female
+
+
+ -
+
+ Other
+
+
+
+
+ -
+
+
+ Date Of Birth
+
+
+
+ -
+
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ -
+
+
+ /
+
+
+
+ -
+
+
-
+
+ 1
+
+
+ -
+
+ 2
+
+
+ -
+
+ 3
+
+
+ -
+
+ 4
+
+
+ -
+
+ 5
+
+
+ -
+
+ 6
+
+
+ -
+
+ 7
+
+
+ -
+
+ 8
+
+
+ -
+
+ 9
+
+
+ -
+
+ 10
+
+
+ -
+
+ 11
+
+
+ -
+
+ 12
+
+
+
+
+ -
+
+
+ /
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+ Comment
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
diff --git a/src/guimacros.h b/src/guimacros.h
new file mode 100644
index 0000000..f186821
--- /dev/null
+++ b/src/guimacros.h
@@ -0,0 +1,19 @@
+//
+// Created by Krad on 2021/10/8.
+//
+
+#ifndef GUI_GUIMACROS_H
+#define GUI_GUIMACROS_H
+#define ADD_TOOL_BTN_TO_LAYOUT(name,img,layout)\
+ QToolButton* btn##name= new QToolButton(this);\
+ btn##name->setToolButtonStyle(Qt::ToolButtonIconOnly);\
+ btn##name->setIcon(QIcon(img));\
+ btn##name->setIconSize(QSize(120,120));\
+ btn##name->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);\
+ btn##name->setText(#name);\
+ layout->addWidget(btn##name);
+
+
+#define ADD_TOOL_BTN(name,img)\
+ ADD_TOOL_BTN_TO_LAYOUT(name,img,layout)
+#endif //GUI_GUIMACROS_H
diff --git a/src/icons/account.png b/src/icons/account.png
new file mode 100644
index 0000000..e370f63
Binary files /dev/null and b/src/icons/account.png differ
diff --git a/src/icons/add.png b/src/icons/add.png
new file mode 100644
index 0000000..68d3be9
Binary files /dev/null and b/src/icons/add.png differ
diff --git a/src/icons/close_circle.png b/src/icons/close_circle.png
new file mode 100644
index 0000000..310e6e6
Binary files /dev/null and b/src/icons/close_circle.png differ
diff --git a/src/icons/close_circle_d.png b/src/icons/close_circle_d.png
new file mode 100644
index 0000000..b142869
Binary files /dev/null and b/src/icons/close_circle_d.png differ
diff --git a/src/icons/details.png b/src/icons/details.png
new file mode 100644
index 0000000..ef4e011
Binary files /dev/null and b/src/icons/details.png differ
diff --git a/src/icons/left.png b/src/icons/left.png
new file mode 100644
index 0000000..6102b66
Binary files /dev/null and b/src/icons/left.png differ
diff --git a/src/icons/logo.png b/src/icons/logo.png
new file mode 100644
index 0000000..72e06ec
Binary files /dev/null and b/src/icons/logo.png differ
diff --git a/src/icons/rec.png b/src/icons/rec.png
new file mode 100644
index 0000000..f7c06f1
Binary files /dev/null and b/src/icons/rec.png differ
diff --git a/src/icons/refresh.png b/src/icons/refresh.png
new file mode 100644
index 0000000..971dc08
Binary files /dev/null and b/src/icons/refresh.png differ
diff --git a/src/icons/right.png b/src/icons/right.png
new file mode 100644
index 0000000..fd62e58
Binary files /dev/null and b/src/icons/right.png differ
diff --git a/src/icons/scan.png b/src/icons/scan.png
new file mode 100644
index 0000000..d37723f
Binary files /dev/null and b/src/icons/scan.png differ
diff --git a/src/icons/scan_e.png b/src/icons/scan_e.png
new file mode 100644
index 0000000..f5a6791
Binary files /dev/null and b/src/icons/scan_e.png differ
diff --git a/src/icons/selected.png b/src/icons/selected.png
new file mode 100644
index 0000000..3846af2
Binary files /dev/null and b/src/icons/selected.png differ
diff --git a/src/icons/selected_d.png b/src/icons/selected_d.png
new file mode 100644
index 0000000..81646d9
Binary files /dev/null and b/src/icons/selected_d.png differ
diff --git a/src/icons/setting.png b/src/icons/setting.png
new file mode 100644
index 0000000..432c86c
Binary files /dev/null and b/src/icons/setting.png differ
diff --git a/src/icons/stop.png b/src/icons/stop.png
new file mode 100644
index 0000000..4f11b08
Binary files /dev/null and b/src/icons/stop.png differ
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 0000000..b48f94e
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,11 @@
+#include "mainwindow.h"
+#include
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ MainWindow w;
+ w.show();
+
+ return a.exec();
+}
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
new file mode 100644
index 0000000..8417da2
--- /dev/null
+++ b/src/mainwindow.cpp
@@ -0,0 +1,76 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+#include
+#include
+#include
+#include "tabformwidget.h"
+#include "SelectFormWidget.h"
+#include "ScanFormWidget.h"
+
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ const QString style = "*{background-color:#3c3c3c; font-family:Microsoft YaHei; color:white;margin:0;font-size:16px;}"
+ "QTabBar::tab {\n"
+ "height:60px;"
+ "width:300px;"
+ "font-size: 25px;"
+ "background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\"\n"
+ "stop: 0 #333333, stop: 1.0 #555555);"
+ "border: 2px solid #505050;\n"
+// "border-bottom-color: #323232; /* same as the pane color */\n"
+ "border-bottom-left-radius: 50%;\n"
+ "border-bottom-right-radius: 50%;\n"
+ "min-width: 8ex;\n"
+ "padding: 2px;\n"
+ "}"
+ "QTabBar::tab:selected, QTabBar::tab:hover {"
+ "border-top:5px solid #4a88c7;\n"
+ "background: #505050;}"
+ "QTabWidget::pane{margin:0}"
+ "QLineEdit{min-height:36px;max-height:36px; border:1px solid silver}"
+ "QTextEdit{border:1px solid silver}"
+ "QComboBox{text-align:center;min-height:36px;max-height:36px; border:1px solid silver}"
+ "QComboBox::drop-down{width:20px}"
+ "QComboBox QAbstractItemView{min-width:120px;}"
+ "QComboBox QAbstractItemView::item {min-height:60px;max-height:60px; border:1px solid white;}"
+ "QScrollBar:vertical {min-width: 50px;}"
+ "QLabel{color:white; font-weight:bold; font-size:16px;}\n"
+ "QWidget#topbarWidget{min-height:36px;max-height:36px;}\n"
+ "QWidget#contentWidget{border-top:1px solid #515151;}\n"
+ "QWidget#commandWidget{min-height:123px;max-height:123px;border-top:1px solid #323232; border-bottom:1px solid #323232;}\n"
+ "QLabel#logo{min-width:30px;max-width:30px}\n"
+ "QLabel#company{min-width:150px;max-width:150px}\n"
+ "QWidget QWidget#statusBarWidget{min-width:300px;max-width:300px}\n"
+ "QWidget QToolButton{border:none;border-radius:10%;font-size:26px; font-weight:Bold;padding:5px;}\n"
+ "QWidget QToolButton:hover{background:#505050;}\n"
+ "QWidget QToolButton:checked{border:5px solid darkorange;padding:0px;}"
+ "QWidget#editcmdWidget{min-height:83px;max-height:83px;}"
+ "QWidget#verSpaceLine{ border-right:1px solid #0078d8;}";
+ this->setStyleSheet(style);
+ ui->setupUi(this);
+ QTabWidget *tab = new QTabWidget(this);
+ tab->setTabPosition(QTabWidget::South);
+ tab->setContentsMargins(0,0,0,0);
+// tab->layout()->setMargin(0);
+ SelectFormWidget* select_form= new SelectFormWidget(this);
+ tab->addTab(select_form, "Select");
+ ScanFormWidget* scan_form= new ScanFormWidget(this);
+ tab->addTab(scan_form, "Scan");
+ TabFormWidget* verify_form= new TabFormWidget(this);
+ tab->addTab(verify_form, "Verify");
+ tab->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
+ QHBoxLayout * layout = new QHBoxLayout();
+ layout->setMargin(0);
+ layout->addWidget(tab);
+ ui->centralWidget->setLayout(layout);
+ this->setWindowFlags (Qt::Window);
+ this->showFullScreen ();
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
diff --git a/src/mainwindow.h b/src/mainwindow.h
new file mode 100644
index 0000000..9353441
--- /dev/null
+++ b/src/mainwindow.h
@@ -0,0 +1,22 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include
+
+namespace Ui {
+class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ explicit MainWindow(QWidget *parent = nullptr);
+ ~MainWindow();
+
+private:
+ Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
new file mode 100644
index 0000000..72e2bd7
--- /dev/null
+++ b/src/mainwindow.ui
@@ -0,0 +1,21 @@
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ MainWindow
+
+
+
+
+
+
+
diff --git a/src/patientinformationform.cpp b/src/patientinformationform.cpp
new file mode 100644
index 0000000..c0c03cf
--- /dev/null
+++ b/src/patientinformationform.cpp
@@ -0,0 +1,14 @@
+#include "patientinformationform.h"
+#include "ui_patientinformationform.h"
+
+PatientInformationForm::PatientInformationForm(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::PatientInformationForm)
+{
+ ui->setupUi(this);
+}
+
+PatientInformationForm::~PatientInformationForm()
+{
+ delete ui;
+}
diff --git a/src/patientinformationform.h b/src/patientinformationform.h
new file mode 100644
index 0000000..f5da926
--- /dev/null
+++ b/src/patientinformationform.h
@@ -0,0 +1,22 @@
+#ifndef PATIENTINFORMATIONFORM_H
+#define PATIENTINFORMATIONFORM_H
+
+#include
+
+namespace Ui {
+class PatientInformationForm;
+}
+
+class PatientInformationForm : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit PatientInformationForm(QWidget *parent = nullptr);
+ ~PatientInformationForm();
+
+private:
+ Ui::PatientInformationForm *ui;
+};
+
+#endif // PATIENTINFORMATIONFORM_H
diff --git a/src/patientinformationform.ui b/src/patientinformationform.ui
new file mode 100644
index 0000000..e6da4cf
--- /dev/null
+++ b/src/patientinformationform.ui
@@ -0,0 +1,137 @@
+
+
+ PatientInformationForm
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ Form
+
+
+
+ 6
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 6
+
+
+ 0
+
+
+ 0
+
+
+ 12
+
+
+ 0
+
+
-
+
+
+ Patient Information
+
+
+
+ -
+
+
+ <html><head/><body><p>PatientID:</p></body></html>
+
+
+
+ -
+
+
+ Someone Somebody
+
+
+
+ -
+
+
+ 2021/11/11
+
+
+
+ -
+
+
+ Female
+
+
+
+ -
+
+
+ Acc# 27812398
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Current Protocol
+
+
+
+ -
+
+
+ LEFT ONLY
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 211
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/res.qrc b/src/res.qrc
new file mode 100644
index 0000000..7a3c9aa
--- /dev/null
+++ b/src/res.qrc
@@ -0,0 +1,20 @@
+
+
+ icons/add.png
+ icons/close_circle.png
+ icons/details.png
+ icons/selected.png
+ icons/logo.png
+ icons/rec.png
+ icons/refresh.png
+ icons/scan.png
+ icons/scan_e.png
+ icons/stop.png
+ icons/selected_d.png
+ icons/close_circle_d.png
+ icons/left.png
+ icons/right.png
+ icons/account.png
+ icons/setting.png
+
+
diff --git a/src/tabformwidget.cpp b/src/tabformwidget.cpp
new file mode 100644
index 0000000..4770426
--- /dev/null
+++ b/src/tabformwidget.cpp
@@ -0,0 +1,17 @@
+#include "tabformwidget.h"
+#include "ui_tabformwidget.h"
+
+TabFormWidget::TabFormWidget(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::TabFormWidget)
+{
+ ui->setupUi(this);
+ QPixmap img(":/icons/logo.png");
+ ui->logo->setPixmap(img.scaledToHeight(33,Qt::SmoothTransformation));
+ ui->company->setText(QString("浙江衡玖医疗科技"));
+}
+
+TabFormWidget::~TabFormWidget()
+{
+ delete ui;
+}
diff --git a/src/tabformwidget.h b/src/tabformwidget.h
new file mode 100644
index 0000000..4b61449
--- /dev/null
+++ b/src/tabformwidget.h
@@ -0,0 +1,21 @@
+#ifndef TABFORMWIDGET_H
+#define TABFORMWIDGET_H
+
+#include
+
+namespace Ui {
+class TabFormWidget;
+}
+
+class TabFormWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit TabFormWidget(QWidget *parent = nullptr);
+ ~TabFormWidget();
+protected:
+ Ui::TabFormWidget *ui;
+};
+
+#endif // TABFORMWIDGET_H
diff --git a/src/tabformwidget.ui b/src/tabformwidget.ui
new file mode 100644
index 0000000..5df4cd1
--- /dev/null
+++ b/src/tabformwidget.ui
@@ -0,0 +1,90 @@
+
+
+ TabFormWidget
+
+
+
+ 0
+ 0
+ 995
+ 673
+
+
+
+ Form
+
+
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 3
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ LOGO
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+ -
+
+
+ Message for DAQ and device.
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+