From 8ffaf0f54f4d80ddf1ee4b15beb06e0c868672a2 Mon Sep 17 00:00:00 2001 From: "work-zym\\zhangyiming" <1131393555@qq.com> Date: Tue, 12 Nov 2024 13:40:43 +0800 Subject: [PATCH] =?UTF-8?q?1=20=E6=95=B0=E6=8D=AE=E5=BA=93=E6=A0=B8?= =?UTF-8?q?=E5=BF=83=E7=B1=BB=202=E5=8F=82=E6=95=B0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=8E=A7=E4=BB=B6=E5=B0=81=E8=A3=85=E5=92=8C?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=95=8C=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/xyylMCWEACSystem.exe | Bin 1341952 -> 1403392 bytes xyylMCWEACSystem/SqlCore.cpp | 54 +- xyylMCWEACSystem/SqlCore.h | 13 +- xyylMCWEACSystem/egg.qrc | 1 + .../{icon_高频滤波.png => icon_HighFreq.png} | Bin xyylMCWEACSystem/main.cpp | 8 +- xyylMCWEACSystem/navlistwidget.cpp | 13 +- xyylMCWEACSystem/navlistwidget.h | 2 + xyylMCWEACSystem/parametersettingswidget.cpp | 171 ++++++ xyylMCWEACSystem/parametersettingswidget.h | 57 ++ xyylMCWEACSystem/systemsettingwidget.cpp | 27 +- xyylMCWEACSystem/xyylMCWEACSystem.pro | 6 +- xyylMCWEACSystem/xyylMCWEACSystem.pro.user | 526 +++++++++--------- 13 files changed, 570 insertions(+), 308 deletions(-) rename xyylMCWEACSystem/image/{icon_高频滤波.png => icon_HighFreq.png} (100%) diff --git a/bin/xyylMCWEACSystem.exe b/bin/xyylMCWEACSystem.exe index d16169631a022993c269ea670691a37555e392d6..74f91d6f53bdbd453497dd3014677d3ed8b3b4f1 100644 GIT binary patch delta 111168 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 diff --git a/xyylMCWEACSystem/SqlCore.cpp b/xyylMCWEACSystem/SqlCore.cpp index 3f159bc..c897042 100644 --- a/xyylMCWEACSystem/SqlCore.cpp +++ b/xyylMCWEACSystem/SqlCore.cpp @@ -1,18 +1,18 @@ -#include "CSqlCore.h" +#include "SqlCore.h" #include #include #include #include -#include "global_log.h" -using namespace UiFramework; -QMap> CSqlCore::mutexMap; -QString CSqlCore::msDriverName; -QString CSqlCore::msPasswd; -QString CSqlCore::msUserName; -QString CSqlCore::msDBFile; -QMutex CSqlCore::mWriteMutex; -void CSqlCore::init(QString sDriver, QString sUser, QString sPasswd, QString sDBFile) + +QMap> SqlCore::mutexMap; + +QString SqlCore::msDriverName; +QString SqlCore::msPasswd; +QString SqlCore::msUserName; +QString SqlCore::msDBFile; +QMutex SqlCore::mWriteMutex; +void SqlCore::init(QString sDriver, QString sUser, QString sPasswd, QString sDBFile) { QByteArray base64User(sUser.toUtf8()); QByteArray base64Passwd(sPasswd.toUtf8()); @@ -22,7 +22,7 @@ void CSqlCore::init(QString sDriver, QString sUser, QString sPasswd, QString sDB msDBFile = sDBFile; } -bool CSqlCore::setKey(QString sDriver,QString sConnect, QString sUser, QString sPasswd, QString sdbFile) +bool SqlCore::setKey(QString sDriver,QString sConnect, QString sUser, QString sPasswd, QString sdbFile) { bool ok = false; QSqlDatabase dataBase = QSqlDatabase::addDatabase(sDriver, sConnect); @@ -37,16 +37,16 @@ bool CSqlCore::setKey(QString sDriver,QString sConnect, QString sUser, QString s if (sPasswd.isEmpty()) { dataBase.setConnectOptions("QSQLITE_REMOVE_KEY"); - logInfo() << QString::fromLocal8Bit("") << endl; + //logInfo() << QString::fromLocal8Bit("") << endl; } else { dataBase.setConnectOptions("QSQLITE_CREATE_KEY"); - logInfo() << QString::fromLocal8Bit("") << endl; + //logInfo() << QString::fromLocal8Bit("") << endl; } if (!dataBase.open()) { - logError() << QString::fromLocal8Bit("") << endl; + //logError() << QString::fromLocal8Bit("") << endl; ok = false; } else @@ -58,7 +58,7 @@ bool CSqlCore::setKey(QString sDriver,QString sConnect, QString sUser, QString s return ok; } -bool CSqlCore::updateKey(QString NewsPasswd, QString oldPasswd) +bool SqlCore::updateKey(QString NewsPasswd, QString oldPasswd) { bool ok = false; getSqlDataBase().setPassword(oldPasswd); @@ -66,13 +66,13 @@ bool CSqlCore::updateKey(QString NewsPasswd, QString oldPasswd) ok = getSqlDataBase().open(); if (!ok) { - logError() << "updatePasswd: " << getSqlDataBase().lastError().driverText(); + //logError() << "updatePasswd: " << getSqlDataBase().lastError().driverText(); ok = false; } return ok; } -bool CSqlCore::execute(QString sql ) +bool SqlCore::execute(QString sql ) { QMutexLocker lockTemp(&mWriteMutex); QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//ļ + ߳ @@ -85,7 +85,7 @@ bool CSqlCore::execute(QString sql ) bool flag = sqlQuery.exec(sql); if (!flag) { - logError() << connName << sqlQuery.lastError().text() << endl; + //logError() << connName << sqlQuery.lastError().text() << endl; } mutexMap[msDBFile][connName]->unlock(); return flag; @@ -94,7 +94,7 @@ bool CSqlCore::execute(QString sql ) -QSharedPointer CSqlCore::select(QString sql) +QSharedPointer SqlCore::select(QString sql) { //QMutexLocker lockTemp(&mWriteMutex); QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//ļ + ߳ @@ -108,14 +108,14 @@ QSharedPointer CSqlCore::select(QString sql) //QSharedPointer sqlQuery = new QSharedPointer; QSharedPointer sqlQuery = QSharedPointer(new QSqlQuery(t)); if (!sqlQuery->exec(sql)) { - logError() << "CSqlCore::select() sql = " << sql << sqlQuery->lastError().text() << " failed!" << endl; + //logError() << "CSqlCore::select() sql = " << sql << sqlQuery->lastError().text() << " failed!" << endl; } mutexMap[msDBFile][connName]->unlock(); return sqlQuery; } -QSharedPointer CSqlCore::select(QString sql, bool& ok) +QSharedPointer SqlCore::select(QString sql, bool& ok) { //QMutexLocker lockTemp(&mWriteMutex); QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//ļ + ߳ @@ -131,14 +131,14 @@ QSharedPointer CSqlCore::select(QString sql, bool& ok) ok = sqlQuery->exec(sql); if (!ok) { - logError() << "CSqlCore::select() sql = " << sql << sqlQuery->lastError().text() << " failed!" << endl; + //logError() << "CSqlCore::select() sql = " << sql << sqlQuery->lastError().text() << " failed!" << endl; } mutexMap[msDBFile][connName]->unlock(); return sqlQuery; } -void CSqlCore::destroyConn() +void SqlCore::destroyConn() { QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//ļ + ߳ //qDebug() << "destroyConn:" << connName << endl; @@ -154,7 +154,7 @@ void CSqlCore::destroyConn() mutexMap.remove(msDBFile); } -void CSqlCore::destroyOneDBConn() +void SqlCore::destroyOneDBConn() { // foreach (QString i, mutexMap[msDBFile].keys()) { @@ -162,7 +162,7 @@ void CSqlCore::destroyOneDBConn() } } -void CSqlCore::destroyAllDBConn() +void SqlCore::destroyAllDBConn() { // foreach (QString i, mutexMap.keys()) // { @@ -170,7 +170,7 @@ void CSqlCore::destroyAllDBConn() // } } -QSqlDatabase CSqlCore::getSqlDataBase() +QSqlDatabase SqlCore::getSqlDataBase() { QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//ļ + ߳ if (!QSqlDatabase::contains(connName)) @@ -193,7 +193,7 @@ QSqlDatabase CSqlCore::getSqlDataBase() } else { - logWarning() << "DB open failed! " << database.lastError().text() << endl; + //logWarning() << "DB open failed! " << database.lastError().text() << endl; } QMutex *mutex = new QMutex(); mutexMap[msDBFile].insert(connName, mutex); diff --git a/xyylMCWEACSystem/SqlCore.h b/xyylMCWEACSystem/SqlCore.h index 7f414a5..94282e6 100644 --- a/xyylMCWEACSystem/SqlCore.h +++ b/xyylMCWEACSystem/SqlCore.h @@ -1,6 +1,6 @@ #pragma execution_character_set("utf-8") -#ifndef CSqlCore_H -#define CSqlCore_H +#ifndef SqlCore_H +#define SqlCore_H /* \author: zym \brief : @@ -19,9 +19,8 @@ //使用QMutex 对 连接 加锁,适用于多线程 //但建议经常同时操作同一数据库的线程 使用 不同的连接名,因为锁的互斥等待会增大处理时间 //(数据库中实际的连接名是"dbFile+connName",但若使用此类的封装则不用关心实际的连接名) -namespace UiFramework -{ - class CSqlCore : public QObject + + class SqlCore : public QObject { Q_OBJECT public: @@ -53,5 +52,5 @@ namespace UiFramework static QString msDBFile; static QMutex mWriteMutex; }; -} -#endif // CSqlCore_H + +#endif // SqlCore_H diff --git a/xyylMCWEACSystem/egg.qrc b/xyylMCWEACSystem/egg.qrc index 6a3f4be..eae88b1 100644 --- a/xyylMCWEACSystem/egg.qrc +++ b/xyylMCWEACSystem/egg.qrc @@ -47,5 +47,6 @@ image/egg.png image/systemsetting.png image/icon_back_2.png + image/icon_HighFreq.png diff --git a/xyylMCWEACSystem/image/icon_高频滤波.png b/xyylMCWEACSystem/image/icon_HighFreq.png similarity index 100% rename from xyylMCWEACSystem/image/icon_高频滤波.png rename to xyylMCWEACSystem/image/icon_HighFreq.png diff --git a/xyylMCWEACSystem/main.cpp b/xyylMCWEACSystem/main.cpp index ad7efec..291bcf5 100644 --- a/xyylMCWEACSystem/main.cpp +++ b/xyylMCWEACSystem/main.cpp @@ -6,7 +6,6 @@ #include "medicalrecordmanager.h" #include "hospitalinfo.h" - #include #include #include @@ -19,7 +18,6 @@ #include - #include #include #include @@ -37,7 +35,7 @@ #include "framelesswindow.h" #include "medicalrecordmanager.h" - +#include "parametersettingswidget.h" #include int main(int argc, char *argv[]) { @@ -56,8 +54,12 @@ int main(int argc, char *argv[]) MedicalRecordManager me; me.show(); + ParameterSettingsWidget mekl; + mekl.show(); + PerWidget kkss; + kkss.show(); #if 0 CurChatWidget w; diff --git a/xyylMCWEACSystem/navlistwidget.cpp b/xyylMCWEACSystem/navlistwidget.cpp index 6120050..df1eb56 100644 --- a/xyylMCWEACSystem/navlistwidget.cpp +++ b/xyylMCWEACSystem/navlistwidget.cpp @@ -9,14 +9,17 @@ NavListWidget::NavListWidget(QFrame * parent ) init(); initLay(); initConnect(); - setObjectName("NavList"); + m_size =QSize(200,60); } NavListWidget::~NavListWidget( ) { } - + void NavListWidget::setCustomSize(QSize tempSize) + { + m_size = tempSize; + } void NavListWidget::init() { @@ -64,7 +67,7 @@ bool NavListWidget::initConnect() btn->setObjectName(strlistObjectName.at(i)); btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); pButtonGroup->addButton(btn); - btn->setFixedSize(QSize(200,60)); + //btn->setFixedSize(m_size); // btn->setMinimumSize(QSize(200,80)); //btn->setMaximumSize(QSize(200,180)); btn->setCheckable(true); @@ -73,7 +76,8 @@ bool NavListWidget::initConnect() } //#263749 - +#if 0 + setObjectName("NavList"); setStyleSheet("QPushButton{\ background: rgba(51, 71, 75);\ color: white;\ @@ -95,5 +99,6 @@ border-radius: 30px;\ }"\ "QWidget#NavList{background-color:rgb(47, 61, 82);}"\ ); +#endif } diff --git a/xyylMCWEACSystem/navlistwidget.h b/xyylMCWEACSystem/navlistwidget.h index b537587..cee5f40 100644 --- a/xyylMCWEACSystem/navlistwidget.h +++ b/xyylMCWEACSystem/navlistwidget.h @@ -18,11 +18,13 @@ public: void initLay(); bool initConnect(); void setList(QStringList strlist,QStringList strlistObjectName); + void setCustomSize(QSize tempSize); signals: void SigClicked(QString ); private slots: void onButtonClicked( QAbstractButton *button); private: QList m_listBtns; + QSize m_size; }; #endif // NAVLISTWIDGET_H diff --git a/xyylMCWEACSystem/parametersettingswidget.cpp b/xyylMCWEACSystem/parametersettingswidget.cpp index e69de29..589b128 100644 --- a/xyylMCWEACSystem/parametersettingswidget.cpp +++ b/xyylMCWEACSystem/parametersettingswidget.cpp @@ -0,0 +1,171 @@ +#include "parametersettingswidget.h" + +ParameterSettingsWidget::ParameterSettingsWidget(QWidget *parent ) +{ + setStyleSheet("background:white;"); + m_PerHighFreqWidget.m_labImage.setStyleSheet("border-image:url(:/image/icon_HighFreq.png);}"); + m_PerHighFreqWidget.m_labImage.setFixedSize(QSize(30,30)); + m_PerHighFreqWidget.m_labTxt.setText("高频滤波"); + m_PerHighFreqWidget.setTextList(QStringList()<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz", + QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); + + m_PerLowerFreqWidget.setTextList(QStringList()<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz", + QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); + + m_PerTimeConst.setTextList(QStringList()<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz", + QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); + + m_PerPowerFreNotch.setTextList(QStringList()<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz", + QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); + m_PerAmplitude.setTextList(QStringList()<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz", + QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); + m_PerWavevelocity.setTextList(QStringList()<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz", + QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); + + + +#if 0 + QLabel m_labHighFrequencyFiltering; + PerWidget m_PerHighFreqWidget; + + //低频过滤 + QLabel m_labLowerFrequencyFiltering; + PerWidget m_PerLowerFreqWidget; + + //时间常数 + QLabel m_labTimeConst; + PerWidget m_PerTimeConst; + + //工频馅波 Power-frequency notch + QLabel m_labPowerFreNotch; + PerWidget m_PerPowerFreNotch; + //波幅 + QLabel m_labAmplitude; + PerWidget m_PerAmplitude; + //Wave velocity + //波速 + QLabel m_labWavevelocity; + PerWidget m_PerWavevelocity; +#endif + QHBoxLayout * hlay = new QHBoxLayout; + QFrame *line = new QFrame(); + line->setFrameShape(QFrame::VLine); + //line->setFrameShadow(QFrame::Plain); + + hlay->setSpacing(0); + hlay->addWidget(&m_PerHighFreqWidget); + hlay->addWidget(&m_PerLowerFreqWidget); + hlay->addWidget(&m_PerTimeConst); + hlay->addWidget(&m_PerPowerFreNotch); + hlay->addWidget(&m_PerAmplitude); + hlay->addWidget(&m_PerWavevelocity); + + + setContentsMargins(0,0,0,0); + setLayout(hlay); + +} +ParameterSettingsWidget::~ParameterSettingsWidget() +{ + +} +void ParameterSettingsWidget::init() +{ + +} +void ParameterSettingsWidget::initLay() +{ + +} +bool ParameterSettingsWidget::initConnect() +{ + +} +PerWidget::PerWidget(QWidget * parent):QWidget (parent) +{ + init(); + initLay(); +} +PerWidget::~PerWidget() +{ + + + +} +void PerWidget::init() +{ + +} +void PerWidget::initLay() +{ + + m_NavListWidget.setList(QStringList()<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz", + QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); + + m_NavListWidget.setObjectName("NavList1"); +/* + font-size: 16px;\ + font-weight: bold;\ +*/ + + m_NavListWidget.setCustomSize(QSize(40,30)); + + m_NavListWidget.setStyleSheet("QPushButton{\ + background: rgba(255, 255, 255);\ + color: black;\ + border-radius: 8px;\ + border:0px ; \ + }\ + QPushButton:hover{\ + color: black;\ + background: rgb(255, 255, 255);\ + border-radius: 8px;\ + }\ + QPushButton:pressed{\ + color: black;\ + background: rgb(255, 255, 255);\ + border-radius: 8px;\ + }\ + QPushButton:checked{\ + color: white;\ + background: rgb(51, 144, 76);\ + border-radius: 8px;\ + }"\ + "QWidget#NavList1{background-color:rgb(255, 255, 255);}"\ + ); + // m_NavListWidget.show(); + +//setAttribute(Qt::WA_TranslucentBackground); // 背景透明 + QHBoxLayout * hlay = new QHBoxLayout; + QFrame *line = new QFrame(); + line->setFrameShape(QFrame::VLine); + //line->setFrameShadow(QFrame::Plain); + + hlay->setSpacing(0); + hlay->addWidget(&m_NavListWidget); + hlay->addWidget(line); + + + + QHBoxLayout * hlay2 = new QHBoxLayout; + hlay2->addStretch(); + hlay2->addWidget(&m_labImage, 1,Qt::AlignRight); + hlay2->addWidget(&m_labTxt, 1,Qt::AlignLeft); + hlay2->addStretch(); + hlay2->setSpacing(0); + + + QVBoxLayout * vlay = new QVBoxLayout; + vlay->addLayout(hlay2); + vlay->addLayout(hlay); + setContentsMargins(0,0,0,0); + setLayout( vlay); +} +void PerWidget::initConnect() +{ + +} + void PerWidget::setTextList(QStringList str,QStringList objNames) + { + m_NavListWidget.setList(str, objNames); + } diff --git a/xyylMCWEACSystem/parametersettingswidget.h b/xyylMCWEACSystem/parametersettingswidget.h index 2f56b43..5586670 100644 --- a/xyylMCWEACSystem/parametersettingswidget.h +++ b/xyylMCWEACSystem/parametersettingswidget.h @@ -1,4 +1,61 @@ #ifndef PARAMETERSETTINGSWIDGET_H #define PARAMETERSETTINGSWIDGET_H +#include +#include +#include +#include +#include "navlistwidget.h" +class PerWidget:public QWidget +{ + Q_OBJECT +public: + PerWidget(QWidget * parent =NULL); + ~PerWidget(); + void init(); + void initLay(); + void initConnect(); + void setTextList(QStringList str,QStringList objNames); + QLabel m_labImage; + QLabel m_labTxt; +private: + QLabel m_labHighFrequencyFiltering; + NavListWidget m_NavListWidget; +}; + +class ParameterSettingsWidget:public QWidget +{ + Q_OBJECT +public: + ParameterSettingsWidget(QWidget *parent = NULL); + virtual ~ParameterSettingsWidget(); + void init(); + void initLay(); + bool initConnect(); + +private: + QLabel m_labHighFrequencyFiltering; + PerWidget m_PerHighFreqWidget; + + //低频过滤 + QLabel m_labLowerFrequencyFiltering; + PerWidget m_PerLowerFreqWidget; + + //时间常数 + QLabel m_labTimeConst; + PerWidget m_PerTimeConst; + + //工频馅波 Power-frequency notch + QLabel m_labPowerFreNotch; + PerWidget m_PerPowerFreNotch; + //波幅 + QLabel m_labAmplitude; + PerWidget m_PerAmplitude; + //Wave velocity + //波速 + QLabel m_labWavevelocity; + PerWidget m_PerWavevelocity; +}; + + #endif // PARAMETERSETTINGSWIDGET_H diff --git a/xyylMCWEACSystem/systemsettingwidget.cpp b/xyylMCWEACSystem/systemsettingwidget.cpp index 6f0cc6a..8b3d8ec 100644 --- a/xyylMCWEACSystem/systemsettingwidget.cpp +++ b/xyylMCWEACSystem/systemsettingwidget.cpp @@ -10,8 +10,8 @@ SystemSettingWidget::SystemSettingWidget(QWidget * parent ) initConnect(); //setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);//无边框 置顶 // setAttribute(Qt::WA_TranslucentBackground);//透明 - // QString styleSheet = "background-color:rgb(47, 61, 82);border:1px solid white"; - // setStyleSheet(styleSheet); + // QString styleSheet = "background-color:rgb(47, 61, 82);border:1px solid white"; + // setStyleSheet(styleSheet); } SystemSettingWidget::~SystemSettingWidget() @@ -34,7 +34,28 @@ void SystemSettingWidget::init() m_NavListWidget.setList(QStringList()<<"填写病例"<<"病例管理"<<"导联方案"<<"参数设置"<<"医院信息", QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information"); - + m_NavListWidget.setObjectName("NavList"); + m_NavListWidget.setStyleSheet("QPushButton{\ + background: rgba(51, 71, 75);\ + color: white;\ + border-radius: 30px;\ + font-size: 16px;\ + font-weight: bold;\ + }\ + QPushButton:hover{\ + background: rgb(85, 85, 85);\ + border-radius: 30px;\ + }\ + QPushButton:pressed{\ + background: rgb(80, 80, 80);\ + border-radius: 30px;\ + }\ + QPushButton:checked{\ + background: #0d9ddb;\ + border-radius: 30px;\ + }"\ + "QWidget#NavList{background-color:rgb(47, 61, 82);}"\ + ); } void SystemSettingWidget::initLay() { diff --git a/xyylMCWEACSystem/xyylMCWEACSystem.pro b/xyylMCWEACSystem/xyylMCWEACSystem.pro index 1ddb6ea..1a2eb09 100644 --- a/xyylMCWEACSystem/xyylMCWEACSystem.pro +++ b/xyylMCWEACSystem/xyylMCWEACSystem.pro @@ -4,7 +4,7 @@ # #------------------------------------------------- -QT += core gui +QT += core gui sql greaterThan(QT_MAJOR_VERSION, 4): QT += widgets @@ -25,6 +25,7 @@ DEFINES += QT_DEPRECATED_WARNINGS CONFIG += c++11 SOURCES += \ + SqlCore.cpp \ btngroupwidget.cpp \ curchatwidget.cpp \ dataprocesswidget.cpp \ @@ -39,12 +40,14 @@ SOURCES += \ medicalrecordmanager.cpp \ medicalrecordwidget.cpp \ navlistwidget.cpp \ + parametersettingswidget.cpp \ regwidget.cpp \ systemsettingwidget.cpp \ titlewidget.cpp \ widget.cpp HEADERS += \ + SqlCore.h \ btngroupwidget.h \ curchatwidget.h \ dataprocesswidget.h \ @@ -59,6 +62,7 @@ HEADERS += \ medicalrecordwidget.h \ mrmanagement.h \ navlistwidget.h \ + parametersettingswidget.h \ regwidget.h \ systemsettingwidget.h \ titlewidget.h \ diff --git a/xyylMCWEACSystem/xyylMCWEACSystem.pro.user b/xyylMCWEACSystem/xyylMCWEACSystem.pro.user index fb67421..fbc76d8 100644 --- a/xyylMCWEACSystem/xyylMCWEACSystem.pro.user +++ b/xyylMCWEACSystem/xyylMCWEACSystem.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -8,7 +8,7 @@ ProjectExplorer.Project.ActiveTarget - 1 + 0 ProjectExplorer.Project.EditorSettings @@ -63,267 +63,6 @@ ProjectExplorer.Project.Target.0 - - Desktop Qt 5.13.0 MinGW 32-bit - Desktop Qt 5.13.0 MinGW 32-bit - qt.qt5.5130.win32_mingw73_kit - 1 - 0 - 0 - - D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Debug - - - true - qmake - - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - true - - - D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Release - - - true - qmake - - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - true - - - D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Profile - - - true - qmake - - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - true - - 3 - - - 0 - 部署 - - ProjectExplorer.BuildSteps.Deploy - - 1 - Deploy Configuration - - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - xyylMCWEACSystem - xyylMCWEACSystem2 - Qt4ProjectManager.Qt4RunConfiguration:D:/gitProject/xyylMCWEACSystem/xyylMCWEACSystem.pro - - 3768 - false - true - true - false - false - true - - D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 Desktop Qt 5.13.0 MinGW 64-bit Desktop Qt 5.13.0 MinGW 64-bit @@ -583,6 +322,267 @@ 1 + + ProjectExplorer.Project.Target.1 + + Desktop Qt 5.13.0 MinGW 32-bit + Desktop Qt 5.13.0 MinGW 32-bit + qt.qt5.5130.win32_mingw73_kit + 1 + 0 + 0 + + D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Debug + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + true + + + D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Release + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + + false + false + true + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + + D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Profile + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + true + true + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Profile + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + 3 + + + 0 + 部署 + + ProjectExplorer.BuildSteps.Deploy + + 1 + Deploy Configuration + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + dwarf + + cpu-cycles + + + 250 + -F + true + 4096 + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + kcachegrind + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + xyylMCWEACSystem + xyylMCWEACSystem2 + Qt4ProjectManager.Qt4RunConfiguration:D:/gitProject/xyylMCWEACSystem/xyylMCWEACSystem.pro + + 3768 + false + true + true + false + false + true + + + + 1 + + ProjectExplorer.Project.TargetCount 2