Compare commits

...

78 Commits

Author SHA1 Message Date
5ccded404a 调整样式 2024-12-24 16:04:00 +08:00
8ab2ba82c0 更新日期选择样式,支持保存清空 2024-12-24 11:04:56 +08:00
7e993e2a77 更新日期控件和样式 2024-12-23 17:48:07 +08:00
c5f64d5a6b 取消病历管理的滚动条 2024-12-23 10:46:24 +08:00
69828cbb54 填写病历字对齐 2024-12-23 10:40:21 +08:00
cac2b0b341 调整病例填写字体对齐 2024-12-23 10:19:22 +08:00
cdb542eb88 迁移病历填写和医院信息和导联方案的样式 2024-12-20 15:20:33 +08:00
87f0b2d34b 调整文件描述的样式 2024-12-20 11:25:16 +08:00
2869d15a26 调整导联方案字体样式 2024-12-20 11:18:01 +08:00
bdcee52537 调整导联方案的样式到文件 2024-12-20 10:29:17 +08:00
13e4fd22fb 调整导联方案的样式 2024-12-20 10:23:03 +08:00
1311b3ee41 调整导联方案样式 2024-12-19 18:00:29 +08:00
e24034d65a 调整参数设置按钮的字体样式 2024-12-19 17:44:26 +08:00
d1d37cce03 调整医院信息 导联方案 病历管理 病历填写以及参数设置样式 2024-12-19 16:41:36 +08:00
75ef0be3cc 优化边距 2024-12-18 17:11:48 +08:00
783971a4bd 调整填写病历页面的布局和样式 2024-12-18 17:05:03 +08:00
29178e2e39 取消不用的png 2024-12-18 14:40:29 +08:00
7d331f1760 系统设置页面调整 2024-12-18 13:09:32 +08:00
17cd657ff1 调整系统设置页面窗口标准,侧边导航栏 2024-12-17 17:50:09 +08:00
034fdb33ae 调整主页返回按钮样式 2024-12-17 16:18:47 +08:00
84e020c26e 迁移主窗口的背景色到qss文件中 2024-12-17 16:06:52 +08:00
bbc85f17b3 主页面样式调节 2024-12-17 15:48:19 +08:00
8ab55f9e73 重新调整主页面导航标题 2024-12-17 13:45:00 +08:00
8dba3771c6 替换主窗口自定义控件 2024-12-17 11:11:53 +08:00
281d41769a 解决自定义控件设置qss后圆角效果未生效问题 2024-12-16 17:43:50 +08:00
2200e0e22f 实现主页面基本控件的 2024-12-16 17:38:25 +08:00
2bcefa52d4 重新更新主窗口的按钮的尺寸 2024-12-13 16:49:46 +08:00
1aee19e19e 更新适应ui的尺寸 2024-12-13 16:35:17 +08:00
1f189d8036 迁移主窗口样式到qss窗口中 2024-12-13 15:58:01 +08:00
7dc8b59aa2 支持文件qss 2024-12-13 14:55:21 +08:00
e53ad5903c 增加qss支持 2024-12-13 14:10:21 +08:00
d78da30964 1 增加ui新给的图片 2 对新图的样式进行调节 2024-12-05 17:46:21 +08:00
a72e1e657d 1 完善导联方案的方案加载机制,支持新增方案的加载
2 完善导联方案的删除,在删除时支持方案删除·
2024-12-05 17:19:15 +08:00
615e83ce3c 1 支持界面的重新布局更新
2 对新增和删除方案支持
 3 支持方案的刷新
 4 增加日志支持
2024-12-04 16:45:02 +08:00
85daf3be65 调整设置支持重新布局 2024-12-04 11:30:38 +08:00
a40a56b260 删除废弃无效代码 2024-12-03 17:02:00 +08:00
8d3c88df70 增加删除和新建槽 2024-12-03 17:00:01 +08:00
e8406eb972 更新位置模版 2024-12-03 16:56:23 +08:00
986e3cdfea 更新布局后的位置模版 2024-12-03 16:53:14 +08:00
b37d200823 增加新建方案提示窗口 2024-12-03 16:48:24 +08:00
5122686119 更新支持新布局 2024-12-03 16:37:00 +08:00
cbe3be40b9 1 支持方案json存储操作类 2 支持方案的json存储和解析、以及初始化 3 建立标准初始化json模版 2024-12-02 17:01:16 +08:00
4c89cb3e19 导联方案界面优化 2024-11-29 16:44:01 +08:00
2f06dbc3e5 清除测试代码 2024-11-29 14:48:42 +08:00
ffd5932c72 医院信息的唯一性显示和更新支持 2024-11-29 13:59:49 +08:00
33b4071251 1主逻辑导联方案
2 样式设置
3 导联方案布局调整
2024-11-28 17:54:32 +08:00
6f4e11d448 解决移动按钮无法在主窗口中移动的问题 2024-11-28 17:51:50 +08:00
3e020719b0 1 新增可移动按钮控件 2 解决可移动控件无法在子控件上拖动的情况 2024-11-28 16:45:57 +08:00
45ad0e67aa 导联方案主界面初步设计 2024-11-26 17:16:25 +08:00
9ba7a28d79 调整table字体居中 2024-11-26 10:47:37 +08:00
d4d6534204 支持页码的正常显示 2024-11-25 16:30:04 +08:00
1f3e167cc7 1 增加删除支持相关操作 2 增加非空限制 3调整门诊信息显示为空问题 2024-11-25 15:55:16 +08:00
9d5f7fc796 解决类型信息存储为空问题 2024-11-25 14:28:17 +08:00
caf362554a 选择项互斥设置 2024-11-25 11:00:08 +08:00
fe31214665 修复模糊查询后,再次重新查询未正常显示问题 2024-11-25 10:35:29 +08:00
b9e7314042 更新支持模糊查询,并可以成功查询 2024-11-22 17:20:33 +08:00
e94d92aeec 1 增加检查日期 2 数据成功保存 2024-11-22 15:59:32 +08:00
a25057fa35 增加上一页和下一页的翻页逻辑 2024-11-21 17:20:32 +08:00
e57bbaf79f 1 增加病例翻页数据库支持逻辑 2 增加医院信息更新数据库支持 2024-11-21 17:15:39 +08:00
8a68ef046d 完成医院信息的存储和更新 2024-11-20 17:23:22 +08:00
13eef834b9 增加医院信息管理接口、病例管理接口 2024-11-20 17:13:38 +08:00
fb49dac74f 支持医院信息保存 2024-11-20 16:41:20 +08:00
51f7c2a47c 解决数据创建失败和程序因无sql库导致的表创建失败问题 2024-11-20 16:18:46 +08:00
ab2982a00b 病历建表和建表初始化 2024-11-20 15:28:10 +08:00
5d1c1b6c98 1 数据库语句生成帮助类、
2 数据管理类
2024-11-19 17:29:58 +08:00
6cd4db6d95 更新样式 2024-11-18 15:15:32 +08:00
146435f74a 1增加数据库帮助执行类、
2调整医院信息样式
2024-11-18 15:15:05 +08:00
67613e3068 调整参数设置布局 2024-11-15 16:00:37 +08:00
3149499fba 医院信息布局、样式 2024-11-15 14:52:55 +08:00
4701869d39 只是主逻辑跳转、样式更新、布局调节 2024-11-14 17:49:22 +08:00
19fd6cd93b 医院信息布局 2024-11-14 16:33:39 +08:00
c7deb85b31 样式调节 2024-11-13 15:03:53 +08:00
1bd1ddba88 更新导航按钮布局、更新参数设置样式、更新病例管理样式 2024-11-13 13:37:58 +08:00
f6528367d6 调整各个选项的参数 2024-11-13 10:46:22 +08:00
3dc5980093 调整样式、更新与ui对接的新图片 2024-11-12 15:57:09 +08:00
e21be2e33b 更新一批图标 2024-11-12 14:04:19 +08:00
8ffaf0f54f 1 数据库核心类 2参数设计基础控件封装和参数界面修改 2024-11-12 13:40:43 +08:00
e96f28a706 1 增加数据核心执行类支持多线程
2 增加参数设置窗口
3 设计参数设置的基本选择控件类
2024-11-08 14:04:55 +08:00
100 changed files with 4595 additions and 575 deletions

BIN
bin/Qt5Sql.dll Normal file

Binary file not shown.

131
bin/defaultstyle.qss Normal file
View File

@@ -0,0 +1,131 @@
/*title对应的qss 以及主窗口framewindows的背景*/
QWidget#title,#FrameWindow{background-color:#ffffff;}
QLabel#titleDes{font-size: 45px;font-weight: 500;font-family: 思源黑体;color:#0D9DDB;background-color: transparent;}
QLabel#titleSystemName{font-size: 45px;font-weight: 500;font-family: 思源黑体;color:#555555;background-color: transparent;}
QPushButton#titleBtn{border-image:url(:/image/icon_exit.png);border-radius: 40px;background-color: #EEF7FD;}
QPushButton#titleBtn:hover{border-image:url(:/image/icon_exit_hover.png);border-radius: 40px;}
QPushButton#titleBtn:pressed{border-image:url(:/image/icon_exit_checked.png);border-radius: 40px;}
MainBtn{border-image:url(:/image/index_bg_setting.png);background-color: transparent;}
MainBtn:hover{border-image:url(:/image/index_bg_setting_hover.png);}
MainBtn:pressed{border-image:url(:/image/index_bg_setting_checked.png);}
QLabel#MainTxt{font-size: 60px;font-weight: 500;color:white;background-color: transparent;}
QLabel#MainTxtEn{font-size: 60px;font-weight:normal;color:white;background-color: transparent;}
QWidget#parasetting{background-color:white;border-radius: 10px;}
/*导联方案*/
QLabel#labSchemeNum,#labSchemePoints,#labSchemePointsparam{font-family: 思源黑体;font-size: 26px;font-weight: 500;color:#054578;}
QLabel#labScheme{font-family: 思源黑体;font-size: 32px;font-weight: 500;color: #0D9DDB;}
QLabel#labDesShec{font-family: Source Han Sans;font-size: 16px;font-weight: 500;color: #999999;}
QLabel#labhospitalName,#labSection,#labUserNum,#labDataBaseName,#labUser,#labpasswd,#labRepasswd{font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #555555;}
/*填写病历*/
QLabel#labStar{color:red;}
QLabel#labCheckNum{font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #555555;}
QRadioButton#labCheckNum{font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #555555;}
QLineEdit
{
border:1px solid #cccccc;
background: #F5F7F9;
border-radius: 12px;
width: 400px;
font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #999999;
height: 60px;padding: 5px 20px;
}
/*病历管理*/
QHeaderView::section{font-family: 思源黑体;font-size: 28px;font-weight: 500;color: #054578;}
QLineEdit:hover
{
border: 1px solid #298DFF;
border-radius: 3px;
background-color: #F2F2F2;
color: #298DFF;
selection-background-color: #298DFF;
selection-color: #F2F2F2;
}
QTableWidget
{
font-family: Source Han Sans;
font-size: 28px;
font-weight: normal;
color: #666666;
}
QLineEdit[echoMode="2"]
{
lineedit-password-character: 9679;
lineedit-password-mask-delay: 2000;
}
QLineEdit:disabled
{
border: 1px solid #CDCDCD;
background-color: #CDCDCD;
color: #B4B4B4;
}
QLineEdit:read-only
{
background-color: #CDCDCD;
color: #F2F2F2;
}
QTextEdit
{
color: black;
background-color: white;
border:1px solid black;
}
QGroupBox
{
background-color: #4F4F4F;
border: 1px solid #969696;
color: rgb(13,157,219);
border-radius: 5px;
margin-top: 2ex;
}
QPushButton#ok,#cancel
{
font-family: 思源黑体;
font-size: 32px;
font-weight: 500;
color: #0D9DDB;
border:1px solid black;
background: background: #FFFFFF;;
border-radius:12px;
padding:7px 10px;
}
QPushButton#open
{
background: white;
border-radius:10px;
padding:7px 10px;
}
QPushButton#open
:hover
{
background: rgb(85, 85, 85);
border-radius:10px;
padding:7px 10px;
}
QPushButton#open
:pressed
{
background: rgb(80, 80, 80);
border-radius:10px;
padding:7px 10px;
}
QPushButton#open
:checked
{
background: #0d9ddb;
border-radius:10px;
padding:7px 10px;
}

BIN
bin/sqldrivers/qsqlite.dll Normal file

Binary file not shown.

BIN
bin/sqldrivers/qsqlited.dll Normal file

Binary file not shown.

BIN
bin/sqldrivers/qsqlodbc.dll Normal file

Binary file not shown.

Binary file not shown.

BIN
bin/sqldrivers/qsqlpsql.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,418 @@
#pragma execution_character_set("utf-8")
#include "MoveButton.h"
#include "qpainter.h"
#include "qevent.h"
#include "qtimer.h"
#include "qdebug.h"
MoveButton::MoveButton(QWidget *parent) : QWidget(parent)
{
text = "";
textColor = QColor(255, 255, 255);
borderOutColorStart = QColor(255, 255, 255);
borderOutColorEnd = QColor(166, 166, 166);
borderInColorStart = QColor(166, 166, 166);
borderInColorEnd = QColor(255, 255, 255);
bgColor = QColor(100, 184, 255);
showRect = false;
showOverlay = true;
overlayColor = QColor(255, 255, 255);
canMove = false;
this->installEventFilter(this);
timerAlarm = new QTimer(this);
connect(timerAlarm, SIGNAL(timeout()), this, SLOT(alarm()));
timerAlarm->setInterval(500);
//setFont(QFont("Arial", 8));
}
bool MoveButton::eventFilter(QObject *watched, QEvent *event)
{
if (canMove) {
static QPoint lastPnt;
static bool pressed = false;
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->type() == QEvent::MouseButtonPress) {
if (this->rect().contains(mouseEvent->pos()) && (mouseEvent->button() == Qt::LeftButton)) {
lastPnt = mouseEvent->pos();
pressed = true;
}
} else if (mouseEvent->type() == QEvent::MouseMove && pressed) {
int dx = mouseEvent->pos().x() - lastPnt.x();
int dy = mouseEvent->pos().y() - lastPnt.y();
this->move(this->x() + dx, this->y() + dy);
} else if (mouseEvent->type() == QEvent::MouseButtonRelease && pressed) {
pressed = false;
}
}
return QWidget::eventFilter(watched, event);
}
void MoveButton::paintEvent(QPaintEvent *)
{
int width = this->width();
int height = this->height();
int side = qMin(width, height);
//绘制准备工作,启用反锯齿,平移坐标轴中心,等比例缩放
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
if (showRect) {
//绘制矩形区域
painter.setPen(Qt::NoPen);
painter.setBrush(bgColor);
painter.drawRoundedRect(this->rect(), 5, 5);
//绘制文字
if (!text.isEmpty()) {
QFont font;
font.setPixelSize(side - 20);
painter.setFont(font);
painter.setPen(textColor);
painter.drawText(this->rect(), Qt::AlignCenter, text);
}
} else {
painter.translate(width / 2, height / 2);
painter.scale(side / 200.0, side / 200.0);
//绘制外边框
drawBorderOut(&painter);
//绘制内边框
drawBorderIn(&painter);
//绘制内部指示颜色
drawBg(&painter);
//绘制居中文字
drawText(&painter);
//绘制遮罩层
drawOverlay(&painter);
}
}
void MoveButton::drawBorderOut(QPainter *painter)
{
int radius = 99;
painter->save();
painter->setPen(Qt::NoPen);
QLinearGradient borderGradient(0, -radius, 0, radius);
borderGradient.setColorAt(0, borderOutColorStart);
borderGradient.setColorAt(1, borderOutColorEnd);
painter->setBrush(borderGradient);
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void MoveButton::drawBorderIn(QPainter *painter)
{
int radius = 90;
painter->save();
painter->setPen(Qt::NoPen);
QLinearGradient borderGradient(0, -radius, 0, radius);
borderGradient.setColorAt(0, borderInColorStart);
borderGradient.setColorAt(1, borderInColorEnd);
painter->setBrush(borderGradient);
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void MoveButton::drawBg(QPainter *painter)
{
int radius = 80;
painter->save();
painter->setPen(Qt::NoPen);
painter->setBrush(bgColor);
painter->drawEllipse(-radius, -radius, radius * 2, radius * 2);
painter->restore();
}
void MoveButton::drawText(QPainter *painter)
{
if (text.isEmpty()) {
return;
}
int radius = 100;
painter->save();
QFont font;
font.setPixelSize(85);
painter->setFont(font);
painter->setPen(textColor);
QRect rect(-radius, -radius, radius * 2, radius * 2);
painter->drawText(rect, Qt::AlignCenter, text);
painter->restore();
}
void MoveButton::drawOverlay(QPainter *painter)
{
if (!showOverlay) {
return;
}
int radius = 80;
painter->save();
painter->setPen(Qt::NoPen);
QPainterPath smallCircle;
QPainterPath bigCircle;
radius -= 1;
smallCircle.addEllipse(-radius, -radius, radius * 2, radius * 2);
radius *= 2;
bigCircle.addEllipse(-radius, -radius + 140, radius * 2, radius * 2);
//高光的形状为小圆扣掉大圆的部分
QPainterPath highlight = smallCircle - bigCircle;
QLinearGradient linearGradient(0, -radius / 2, 0, 0);
overlayColor.setAlpha(100);
linearGradient.setColorAt(0.0, overlayColor);
overlayColor.setAlpha(30);
linearGradient.setColorAt(1.0, overlayColor);
painter->setBrush(linearGradient);
painter->rotate(-20);
painter->drawPath(highlight);
painter->restore();
}
QString MoveButton::getText() const
{
return this->text;
}
QColor MoveButton::getTextColor() const
{
return this->textColor;
}
QColor MoveButton::getBorderOutColorStart() const
{
return this->borderOutColorStart;
}
QColor MoveButton::getBorderOutColorEnd() const
{
return this->borderOutColorEnd;
}
QColor MoveButton::getBorderInColorStart() const
{
return this->borderInColorStart;
}
QColor MoveButton::getBorderInColorEnd() const
{
return this->borderInColorEnd;
}
QColor MoveButton::getBgColor() const
{
return this->bgColor;
}
bool MoveButton::getCanMove() const
{
return this->canMove;
}
bool MoveButton::getShowRect() const
{
return this->showRect;
}
bool MoveButton::getShowOverlay() const
{
return this->showOverlay;
}
QColor MoveButton::getOverlayColor() const
{
return this->overlayColor;
}
QSize MoveButton::sizeHint() const
{
return QSize(100, 100);
}
QSize MoveButton::minimumSizeHint() const
{
return QSize(10, 10);
}
void MoveButton::setText(const QString &text)
{
if (this->text != text) {
this->text = text;
update();
}
}
void MoveButton::setTextColor(const QColor &textColor)
{
if (this->textColor != textColor) {
this->textColor = textColor;
update();
}
}
void MoveButton::setBorderOutColorStart(const QColor &borderOutColorStart)
{
if (this->borderOutColorStart != borderOutColorStart) {
this->borderOutColorStart = borderOutColorStart;
update();
}
}
void MoveButton::setBorderOutColorEnd(const QColor &borderOutColorEnd)
{
if (this->borderOutColorEnd != borderOutColorEnd) {
this->borderOutColorEnd = borderOutColorEnd;
update();
}
}
void MoveButton::setBorderInColorStart(const QColor &borderInColorStart)
{
if (this->borderInColorStart != borderInColorStart) {
this->borderInColorStart = borderInColorStart;
update();
}
}
void MoveButton::setBorderInColorEnd(const QColor &borderInColorEnd)
{
if (this->borderInColorEnd != borderInColorEnd) {
this->borderInColorEnd = borderInColorEnd;
update();
}
}
void MoveButton::setBgColor(const QColor &bgColor)
{
if (this->bgColor != bgColor) {
this->bgColor = bgColor;
update();
}
}
void MoveButton::setCanMove(bool canMove)
{
if (this->canMove != canMove) {
this->canMove = canMove;
update();
}
}
void MoveButton::setShowRect(bool showRect)
{
if (this->showRect != showRect) {
this->showRect = showRect;
update();
}
}
void MoveButton::setShowOverlay(bool showOverlay)
{
if (this->showOverlay != showOverlay) {
this->showOverlay = showOverlay;
update();
}
}
void MoveButton::setOverlayColor(const QColor &overlayColor)
{
if (this->overlayColor != overlayColor) {
this->overlayColor = overlayColor;
update();
}
}
void MoveButton::setGreen()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(0, 166, 0));
}
void MoveButton::setRed()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(255, 0, 0));
}
void MoveButton::setYellow()
{
textColor = QColor(25, 50, 7);
setBgColor(QColor(238, 238, 0));
}
void MoveButton::setBlack()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(10, 10, 10));
}
void MoveButton::setGray()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(129, 129, 129));
}
void MoveButton::setBlue()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(0, 0, 166));
}
void MoveButton::setLightBlue()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(100, 184, 255));
}
void MoveButton::setLightRed()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(255, 107, 107));
}
void MoveButton::setLightGreen()
{
textColor = QColor(255, 255, 255);
setBgColor(QColor(24, 189, 155));
}
void MoveButton::startAlarm()
{
if (!timerAlarm->isActive()) {
timerAlarm->start();
}
}
void MoveButton::stopAlarm()
{
if (timerAlarm->isActive()) {
timerAlarm->stop();
}
}
void MoveButton::alarm()
{
static bool isRed = false;
if (isRed) {
this->setBlack();
} else {
this->setRed();
}
isRed = !isRed;
}

View File

@@ -0,0 +1,126 @@
#ifndef MoveButton_H
#define MoveButton_H
/*
MoveButton
*/
#include <QWidget>
class MoveButton : public QWidget
{
Q_OBJECT
Q_PROPERTY(QString text READ getText WRITE setText)
Q_PROPERTY(QColor textColor READ getTextColor WRITE setTextColor)
Q_PROPERTY(QColor borderOutColorStart READ getBorderOutColorStart WRITE setBorderOutColorStart)
Q_PROPERTY(QColor borderOutColorEnd READ getBorderOutColorEnd WRITE setBorderOutColorEnd)
Q_PROPERTY(QColor borderInColorStart READ getBorderInColorStart WRITE setBorderInColorStart)
Q_PROPERTY(QColor borderInColorEnd READ getBorderInColorEnd WRITE setBorderInColorEnd)
Q_PROPERTY(QColor bgColor READ getBgColor WRITE setBgColor)
Q_PROPERTY(bool canMove READ getCanMove WRITE setCanMove)
Q_PROPERTY(bool showRect READ getShowRect WRITE setShowRect)
Q_PROPERTY(bool showOverlay READ getShowOverlay WRITE setShowOverlay)
Q_PROPERTY(QColor overlayColor READ getOverlayColor WRITE setOverlayColor)
public:
explicit MoveButton(QWidget *parent = 0);
protected:
bool eventFilter(QObject *watched, QEvent *event);
void paintEvent(QPaintEvent *);
void drawBorderOut(QPainter *painter);
void drawBorderIn(QPainter *painter);
void drawBg(QPainter *painter);
void drawText(QPainter *painter);
void drawOverlay(QPainter *painter);
private:
QString text; //文本
QColor textColor; //文字颜色
QColor borderOutColorStart; //外边框渐变开始颜色
QColor borderOutColorEnd; //外边框渐变结束颜色
QColor borderInColorStart; //里边框渐变开始颜色
QColor borderInColorEnd; //里边框渐变结束颜色
QColor bgColor; //背景颜色
bool showRect; //显示成矩形
bool canMove; //是否能够移动
bool showOverlay; //是否显示遮罩层
QColor overlayColor; //遮罩层颜色
QTimer *timerAlarm; //定时器切换颜色
public:
QString getText() const;
QColor getTextColor() const;
QColor getBorderOutColorStart() const;
QColor getBorderOutColorEnd() const;
QColor getBorderInColorStart() const;
QColor getBorderInColorEnd() const;
QColor getBgColor() const;
bool getCanMove() const;
bool getShowRect() const;
bool getShowOverlay() const;
QColor getOverlayColor() const;
QSize sizeHint() const;
QSize minimumSizeHint() const;
public Q_SLOTS:
//设置文本
void setText(const QString &text);
//设置文本颜色
void setTextColor(const QColor &textColor);
//设置外边框渐变颜色
void setBorderOutColorStart(const QColor &borderOutColorStart);
void setBorderOutColorEnd(const QColor &borderOutColorEnd);
//设置里边框渐变颜色
void setBorderInColorStart(const QColor &borderInColorStart);
void setBorderInColorEnd(const QColor &borderInColorEnd);
//设置背景色
void setBgColor(const QColor &bgColor);
//设置是否可移动
void setCanMove(bool canMove);
//设置是否显示矩形
void setShowRect(bool showRect);
//设置是否显示遮罩层
void setShowOverlay(bool showOverlay);
//设置遮罩层颜色
void setOverlayColor(const QColor &overlayColor);
//设置为绿色
void setGreen();
//设置为红色
void setRed();
//设置为黄色
void setYellow();
//设置为黑色
void setBlack();
//设置为灰色
void setGray();
//设置为蓝色
void setBlue();
//设置为淡蓝色
void setLightBlue();
//设置为淡红色
void setLightRed();
//设置为淡绿色
void setLightGreen();
//设置报警闪烁
void startAlarm();
void stopAlarm();
void alarm();
};
#endif //MoveButton_H

View File

@@ -0,0 +1,147 @@
#include "SqlCore.h"
#include <QThread>
#include <QDebug>
#include <QSqlError>
#include <QFile>
QMap<QString, QMap<QString, QMutex*>> 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());
msDriverName = sDriver;
msUserName = base64User.toBase64();
msPasswd = base64Passwd.toBase64();
msDBFile = sDBFile;
}
bool SqlCore::setKey(QString sDriver,QString sConnect, QString sUser, QString sPasswd, QString sdbFile)
{
bool ok = false;
QSqlDatabase dataBase = QSqlDatabase::addDatabase(sDriver, sConnect);
if (QFile::exists(sdbFile))
{
QByteArray base64User(sUser.toUtf8());
QByteArray base64Passwd(sPasswd.toUtf8());
dataBase.setUserName(base64User.toBase64());
dataBase.setDatabaseName(sdbFile);//
dataBase.setPassword(base64Passwd.toBase64());
if (sPasswd.isEmpty())
{
dataBase.setConnectOptions("QSQLITE_REMOVE_KEY");
//logInfo() << QString::fromLocal8Bit("解密") << endl;
}
else
{
dataBase.setConnectOptions("QSQLITE_CREATE_KEY");
//logInfo() << QString::fromLocal8Bit("加密") << endl;
}
if (!dataBase.open())
{
//logError() << QString::fromLocal8Bit("密码错误") << endl;
ok = false;
}
else
{
ok = true;
}
}
dataBase.close();
return ok;
}
bool SqlCore::updateKey(QString NewsPasswd, QString oldPasswd)
{
bool ok = false;
getSqlDataBase().setPassword(oldPasswd);
getSqlDataBase().setConnectOptions("QSQLITE_UPDATE_KEY=" + NewsPasswd);
ok = getSqlDataBase().open();
if (!ok)
{
//logError() << "updatePasswd: " << getSqlDataBase().lastError().driverText();
ok = false;
}
return ok;
}
bool SqlCore::execute(QString sql )
{
QMutexLocker lockTemp(&mWriteMutex);
QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//文件名 + 线程
//qDebug() << "execute:" << connName << endl;
QSqlDatabase t = getSqlDataBase( );
mutexMap[msDBFile][connName]->lock();
if (!t.isOpen())
t.open(msUserName,msPasswd);
QSqlQuery sqlQuery(t);
bool flag = sqlQuery.exec(sql);
if (!flag)
{
qDebug() << connName << sqlQuery.lastError().text() << endl;
}
mutexMap[msDBFile][connName]->unlock();
return flag;
}
QSharedPointer<QSqlQuery> SqlCore::select(QString sql)
{
QSharedPointer<QSqlQuery> sqlQuery = QSharedPointer<QSqlQuery>(new QSqlQuery);
return sqlQuery;
}
QSharedPointer<QSqlQuery> SqlCore::select(QString sql, bool& ok)
{
//QMutexLocker lockTemp(&mWriteMutex);
QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//文件名 + 线程
//qDebug() << "select:" << connName << endl;
QSqlDatabase t = getSqlDataBase();
QSharedPointer<QSqlQuery> sqlQuery = QSharedPointer<QSqlQuery>(new QSqlQuery(t));
ok = sqlQuery->exec(sql);
if (!ok)
{
//logError() << "CSqlCore::select() sql = " << sql << sqlQuery->lastError().text() << " failed!" << endl;
}
return sqlQuery;
}
void SqlCore::destroyConn()
{
}
void SqlCore::destroyOneDBConn()
{
}
void SqlCore::destroyAllDBConn()
{
destroyOneDBConn();
}
QSqlDatabase SqlCore::getSqlDataBase()
{
QString connName = QString("%1(%2)").arg(msDBFile).arg(QString::number(qint64(QThread::currentThread()), 16));//文件名 + 线程
if (!QSqlDatabase::contains(connName))
{
QSqlDatabase database = QSqlDatabase::addDatabase(msDriverName, connName);
database.setDatabaseName(msDBFile);
database.setUserName(msUserName);
database.setPassword(msPasswd);
}
return QSqlDatabase::database( connName);
}

View File

@@ -0,0 +1,56 @@
#pragma execution_character_set("utf-8")
#ifndef SqlCore_H
#define SqlCore_H
/*
\author: zym
\brief :
\version 1.0
\note
\CopyRight:zym
*/
#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QMutex>
#include <QMap>
#include <QSharedPointer>
//数据库操作类
//使用QMutex 对 连接 加锁,适用于多线程
//但建议经常同时操作同一数据库的线程 使用 不同的连接名,因为锁的互斥等待会增大处理时间
//(数据库中实际的连接名是"dbFile+connName",但若使用此类的封装则不用关心实际的连接名)
class SqlCore : public QObject
{
Q_OBJECT
public:
//以connName连接对数据库dbFile执行sql语句该sql语句无返回值函数返回执行成功/失败
//若该连接已存在则则获取,不存在则创建再获取
static bool execute(QString sql);
static QSharedPointer<QSqlQuery>select(QString sql, bool& ok);
//以connName连接对数据库dbFile执行sql语句该sql语句有返回值通过QSqlQuery::next()不断获取数据行
//若该连接已存在则则获取,不存在则创建再获取
static QSharedPointer<QSqlQuery>select(QString sql);
//删除db文件dbFile的connName连接和其对应的锁
static void destroyConn();
//删除db文件dbFile的所有连接和锁
static void destroyOneDBConn();
//删除所有db文件的所有连接和锁
static void destroyAllDBConn();
static QSqlDatabase getSqlDataBase();
static void init(QString sDriver, QString sUser, QString sPasswd, QString sDBFile);
static bool setKey(QString sDriver, QString sConnect, QString sUser, QString sPasswd, QString sdbFile);
static bool updateKey(QString NewsPasswd, QString oldPasswd);
private:
//获取对于dbFile文件的数据库连接connName
//有则返回,没有则创建再返回
//同步锁外层key是db文件名内层key是该db文件的数据库连接名
static QMap<QString, QMap<QString, QMutex*>> mutexMap;
static QString msDriverName;
static QString msUserName;
static QString msPasswd;
static QString msDBFile;
static QMutex mWriteMutex;
};
#endif // SqlCore_H

View File

@@ -0,0 +1,71 @@
#include "SqlExecute.h"
#include <QSqlRecord>
#include <QSqlField>
#include "SqlCore.h"
#include <QDebug>
SqlExecute::SqlExecute(QObject * parent/*=NULL*/)
{
}
SqlExecute::~SqlExecute()
{
}
void SqlExecute::init(QString sDriver, QString sUser, QString sPasswd, QString sDBFile)
{
SqlCore::init(sDriver, sUser, sPasswd, sDBFile);
SqlCore::getSqlDataBase();
}
bool SqlExecute::exeRead(QString sql, QList<QVariantMap> &list)
{
bool ok;
QSharedPointer<QSqlQuery> m_sqlQuery = SqlCore::select(sql, ok);
return true;
}
bool SqlExecute::exeRead(QString sql, QList<QList<QVariant>> &list, QStringList sResuleSeq)
{
bool ok;
QSharedPointer<QSqlQuery> m_sqlQuery = SqlCore::select(sql, ok);
return true;
}
bool SqlExecute::exeWrite(QString sql)
{
bool ok;
QSharedPointer<QSqlQuery> m_sqlQuery = SqlCore::select(sql, ok);
return true;
}
void SqlExecute::destroyConn()
{
SqlCore::destroyConn();
}
QSqlDatabase SqlExecute::getDataBase()
{
return SqlCore::getSqlDataBase();
}
QList<QVariantMap> SqlExecute::getValues(QSharedPointer<QSqlQuery> sqlQuery, int page, int pageNum)
{
QList<QVariantMap> list;
if (!sqlQuery->seek(page))
{
return list;
}
do
{
QVariantMap map;
list.append(map);
} while (sqlQuery->next() && --pageNum);
return list;
}

View File

@@ -0,0 +1,37 @@
#ifndef _SqlExecute_H__
#define _SqlExecute_H__
/*
\author: zym
\brief :
\version 1.0
\note
\CopyRight:zym
*/
#include <QSqlDatabase>
#include <QMap>
#include <QThread>
#include <QSqlQuery>
#include <QSharedPointer>
#include <QSqlRecord>
#include <QMutex>
#include <QMutexLocker>
#include <QSqlError>
class SqlExecute :public QObject
{
Q_OBJECT
public:
SqlExecute(QObject * parent = NULL);
virtual ~SqlExecute();
static void init(QString sDriver, QString sUser, QString sPasswd, QString sDBFile);
static bool exeRead(QString sql, QList<QVariantMap> &list);
static bool exeRead(QString sql, QList<QList<QVariant>> &list, QStringList sResuleSeq);
static bool exeWrite(QString sql);
static void destroyConn();
static QSqlDatabase getDataBase();
private:
bool saveSql(QString sqlAction);
QList<QVariantMap> getValues(QSharedPointer<QSqlQuery> sqlQuery, int page, int pageNum);
};
#endif // SqlExecute_h__

View File

@@ -0,0 +1,111 @@
#include "SqlGenerate.h"
#include <QMapIterator>
SqlGenerate::SqlGenerate()
{
}
SqlGenerate::~SqlGenerate()
{
}
QString SqlGenerate::createTable(QString table, QMap<QString, QString> map)
{
QString content = QString("create table %1 (").arg(table);
return content;
}
QString SqlGenerate::insertData(QString table, QVariantMap map)
{
//insert or replace into
QString content = QString("insert or replace into %1 (").arg(table);
QString values = QString("values(");
content.append(") ");
values.append(")");
content.append(values);
content += QString(";");
return content;
}
QString SqlGenerate::selectWhere(QString table, QStringList Name, QString condition)
{
//QString content = QString("select from %1 ").arg(table);
QString content = QString("select ");// .arg(table);
QListIterator<QString> i(Name);
content += QString(";");//
return content;
}
QString SqlGenerate::selectUnion(QStringList sTables, QStringList Name, QString condition /*= ""*/)
{
QString s_select_Data;
if (!condition.isEmpty())
{
s_select_Data += condition;// QString(" where %1").arg(condition);
}
s_select_Data += QString(";");//
return s_select_Data;
}
QString SqlGenerate::createIndex(QString table, QString name)
{
QString content = QString("create index %1_index on %2 (%3)").arg(name).arg(table).arg(name);
content += QString(";");//
return content;
}
QString SqlGenerate::updateData(QString table, QVariantMap map, QString condition)
{
QString content = QString("update %1 set ").arg(table);
QMapIterator<QString, QVariant>i(map);
content += QString("where %1").arg(condition);
content += QString(";");
return content;
}
QString SqlGenerate::deleteData(QString table, QString condition)
{
QString content = QString("delete %1 ").arg(table);
content += QString("where '%1'").arg(condition);
content += QString(";");
return content;
}
bool SqlGenerate::checkCheckParameterSql(const QString& str)
{
QStringList keys;
keys << "and";
keys << "or";
keys << "*";
keys << "=";
keys << " ";
keys << "%0a";
keys << "%0d";
keys << "%";
keys << "/";
keys << "union";
keys << "|";
keys << "&";
keys << "^";
keys << "#";
keys << "/*";
keys << "*/";
keys << "delete";
keys << "insert";
keys << "select";
keys << "update";
keys << "drop";
for (int i = 0; i < keys.size(); i++)
{
if (str.contains(keys[i])) // != string::npos)
{
return false;
}
}
return true;
}

View File

@@ -0,0 +1,33 @@
#ifndef _SqlGenerate_H__
#define _SqlGenerate_H__
#include <QString>
#include <QMap>
#include <QVariantMap>
/*
\author: zym
\brief : Êý¾Ý¿â×é֯УÑéÆ÷
\version 1.0
\note
*/
class SqlGenerate
{
public:
SqlGenerate();
virtual ~SqlGenerate();
QString createTable(QString table, QMap<QString, QString> map);
QString insertData(QString table, QVariantMap map);
QString selectWhere(QString table, QStringList Name, QString condition = "");
QString selectUnion(QStringList table, QStringList Name, QString condition = "");
QString createIndex(QString table, QString name);
QString updateData(QString table, QVariantMap map, QString condition);
QString deleteData(QString table, QString sWhere);
private:
bool checkCheckParameterSql(const QString& str);
protected:
private:
};
#endif // SqlGenerate_h__

View File

@@ -0,0 +1,187 @@
#include "CDateEdit.h"
class CDateEdit::Private {
public:
Private(CDateEdit* qq) : q(qq), null(false), nullable(false) {}
CDateEdit* const q;
bool null;
bool nullable;
void setNull(bool n) {
null = n;
if (null) {
QLineEdit *edit = q->findChild<QLineEdit*>("qt_spinbox_lineedit");
if (!edit->text().isEmpty()) {
edit->clear();
}
}
}
};
CDateEdit::CDateEdit(QWidget *parent) :
QDateEdit(parent), d(new Private(this))
{
}
QDateTime CDateEdit::dateTime() const
{
if (d->nullable && d->null) {
return QDateTime();
}
else {
return QDateEdit::dateTime();
}
}
QDate CDateEdit::date() const
{
if (d->nullable && d->null) {
return QDate();
}
else {
return QDateEdit::date();
}
}
QTime CDateEdit::time() const
{
if (d->nullable && d->null) {
return QTime();
}
else {
return QDateEdit::time();
}
}
void CDateEdit::setDateTime(const QDateTime &dateTime)
{
if (d->nullable && !dateTime.isValid()) {
d->setNull(true);
}
else {
d->setNull(false);
QDateEdit::setDateTime(dateTime);
}
}
void CDateEdit::setDate(const QDate &date)
{
if (d->nullable && !date.isValid()) {
d->setNull(true);
}
else {
d->setNull(false);
QDateEdit::setDate(date);
}
}
void CDateEdit::setTime(const QTime &time)
{
if (d->nullable && !time.isValid()) {
d->setNull(true);
}
else {
d->setNull(false);
QDateEdit::setTime(time);
}
}
bool CDateEdit::isNullable() const
{
return d->nullable;
}
void CDateEdit::setNullDatetime()
{
d->setNull(true);
}
void CDateEdit::setNullable(bool enable)
{
d->nullable = enable;
update();
}
QSize CDateEdit::sizeHint() const
{
const QSize sz = QDateEdit::sizeHint();
return QSize(sz.width() + 3, sz.height());
}
QSize CDateEdit::minimumSizeHint() const
{
const QSize sz = QDateEdit::minimumSizeHint();
return QSize(sz.width() + 3, sz.height());
}
void CDateEdit::showEvent(QShowEvent *event)
{
QDateEdit::showEvent(event);
d->setNull(d->null);
}
void CDateEdit::resizeEvent(QResizeEvent *event)
{
QDateEdit::resizeEvent(event);
}
void CDateEdit::paintEvent(QPaintEvent *event)
{
d->setNull(d->null);
QDateEdit::paintEvent(event);
}
void CDateEdit::keyPressEvent(QKeyEvent *event)
{
if (d->nullable &&
(event->key() >= Qt::Key_0) &&
(event->key() <= Qt::Key_9) &&
d->null) {
setDateTime(QDateTime::currentDateTime());
}
if (event->key() == Qt::Key_Tab && d->nullable && d->null) {
QAbstractSpinBox::keyPressEvent(event);
return;
}
if (event->key() == Qt::Key_Backspace && d->nullable){
QLineEdit *edit = this->findChild<QLineEdit *>("qt_spinbox_lineedit");
if (edit->selectedText() == edit->text()) {
setDateTime(QDateTime());
event->accept();
return;
}
}
QDateEdit::keyPressEvent(event);
}
void CDateEdit::mousePressEvent(QMouseEvent *event)
{
bool saveNull = d->null;
QDateEdit::mousePressEvent(event);
if (d->nullable && saveNull && calendarWidget()->isVisible()) {
setDateTime(QDateTime::currentDateTime());
}
}
bool CDateEdit::focusNextPrevChild(bool next)
{
if (d->nullable && d->null){
return QAbstractSpinBox::focusNextPrevChild(next);
}
else {
return QDateEdit::focusNextPrevChild(next);
}
}
QValidator::State CDateEdit::validate(QString &input, int &pos) const
{
if (d->nullable && d->null){
return QValidator::Acceptable;
}
return QDateEdit::validate(input, pos);
}

View File

@@ -0,0 +1,54 @@
#ifndef CDATEEDIT_H
#define CDATEEDIT_H
#include <QtCore>
#include <QWidget>
#include <QDateEdit>
#include <QStyle>
#include <QPushButton>
#include <QLineEdit>
#include <QStyleOptionSpinBox>
#include <QKeyEvent>
#include <QCalendarWidget>
class CDateEdit : public QDateEdit
{
Q_OBJECT
public:
explicit CDateEdit(QWidget *parent = 0);
QDateTime dateTime() const;
QDate date() const;
QTime time() const;
bool isNullable() const;
void setNullable(bool enable);
void setNullDatetime();
QSize sizeHint() const;
QSize minimumSizeHint() const;
protected:
void showEvent(QShowEvent *event);
void resizeEvent(QResizeEvent *event);
void paintEvent(QPaintEvent *event);
void keyPressEvent(QKeyEvent *event);
void mousePressEvent(QMouseEvent *event);
bool focusNextPrevChild(bool next);
QValidator::State validate(QString &input, int &pos) const;
public slots:
void setDateTime(const QDateTime &dateTime);
void setDate(const QDate &date);
void setTime(const QTime &time);
private:
Q_DISABLE_COPY(CDateEdit)
class Private;
friend class Private;
Private* d;
};
#endif // CDATEEDIT_H

View File

@@ -66,7 +66,7 @@ void CurChatWidget::paintEvent(QPaintEvent *)
// 设置画笔的颜色和样式
painter.setPen(Qt::black);
painteXY(painter);
painteXY(painter);

View File

@@ -0,0 +1,263 @@
#include "datamanager.h"
#include <QDebug>
#include <QCoreApplication>
#include <QFile>
DataManager::DataManager(QObject * parent ):QObject(parent)
{
init();
};
DataManager::~DataManager()
{
}
DataManager& DataManager::instance()
{
static DataManager dataManager;
return dataManager;
}
void DataManager::init()
{
QString sFileName = QCoreApplication::applicationDirPath()+"/medicalRecode.db";
//bool bexist = QFile::exists(sFileName);
//if(bexist)
{
SqlCore::init("QSQLITE","user","passdwd",sFileName);
}
initTable();
}
void DataManager::initTable()
{
//病例信息
{
/*
病历管理
检查号
类型: 住院或门诊
姓名
性别 男女
出生日期
年龄
左右利Laterality 左右
检查日期 inspection
其他信息
*/
QMap<QString, QString> map;
map.insert("f_CheckNum", "TEXT PRIMARY KEY");
map.insert("f_Type", "TEXT NOT NULL");
map.insert("f_Name", "TEXT NOT NULL");
map.insert("f_Sex", "TEXT NOT NULL");
map.insert("f_Birthday", "TEXT NOT NULL");
map.insert("f_Year", "TEXT NOT NULL");
map.insert("f_Laterality", "TEXT NOT NULL");
map.insert("f_InspectDate", "TEXT NOT NULL");
map.insert("f_Other", "TEXT NOT NULL");
SqlGenerate sqlGener;
QString sql = sqlGener.createTable("t_RecodManage",map);
qDebug()<<sql<<endl;
m_sqlcore.execute(sql);
}
//医院信息
{
/*
医院名称
用户名称
科室
用户密码
用户人数
确认密码
数据名称
*/
QMap<QString, QString> map;
map.insert("f_Id", "TEXT PRIMARY KEY");
map.insert("f_HostpitalName", "TEXT ");
map.insert("f_UserName", "TEXT NOT NULL");
map.insert("f_Section", "TEXT NOT NULL");
map.insert("f_UserPasswd", "TEXT NOT NULL");
map.insert("f_UserNum", "TEXT NOT NULL");
map.insert("f_RePasswd", "TEXT NOT NULL");
map.insert("f_DataName", "TEXT NOT NULL");
SqlGenerate sqlGener;
QString sql = sqlGener.createTable("t_Hostpital",map);
qDebug()<<sql<<endl;
m_sqlcore.execute(sql);
}
}
//更新医院信息
bool DataManager::updateHospitalInfo(QString sHostpitalName,
QString UserName,
QString sSection,
QString UserPasswd,
QString UserNum,
QString RePasswd,
QString DataName)
{
QMap<QString, QVariant> map;
map.insert("f_Id", 0);
map.insert("f_HostpitalName", sHostpitalName);
map.insert("f_UserName", UserName);
map.insert("f_Section", sSection);
map.insert("f_UserPasswd", UserPasswd);
map.insert("f_UserNum", UserNum);
map.insert("f_RePasswd", RePasswd);
map.insert("f_DataName",DataName);
SqlGenerate sqlGener;
QString sql = sqlGener.insertData("t_Hostpital",map);
qDebug()<<sql<<endl;
return m_sqlcore.execute(sql);
}
bool DataManager::HospitalInfo(QString& sHostpitalName,
QString& UserName,
QString& sSection,
QString& UserPasswd,
QString& UserNum,
QString& RePasswd,
QString& DataName)
{
QStringList listName;
listName<<"f_HostpitalName";
listName<<"f_UserName";
listName<<"f_Section";
listName<<"f_UserPasswd";
listName<<"f_UserNum";
listName<<"f_RePasswd";
listName<<"f_DataName";
SqlGenerate sqlGener;
QString sql = sqlGener.selectWhere("t_Hostpital",listName);
bool ret =false;
auto query(m_sqlcore.select(sql));
if (query.isNull())
{
return ret;
}
while (query->next())
{
int i =0;
sHostpitalName = query->value(i++).toString();;
UserName = query->value(i++).toString();
sSection= query->value(i++).toString();
UserPasswd = query->value(i++).toString();
UserNum = query->value(i++).toString();
RePasswd = query->value(i++).toString();
DataName = query->value(i++).toString();
}
query->finish();
query->clear();
return true;
}
bool DataManager::updateMedicRecord(
QString CheckNum ,
QString Type ,
QString _Name ,
QString Sex,
QString Birthday,
QString Year,
QString Laterality,
QString InspectDate,
QString Other)
{
QMap<QString, QVariant> map;
map.insert("f_CheckNum", CheckNum);
map.insert("f_Type", Type);
map.insert("f_Name", _Name);
map.insert("f_Sex", Sex);
map.insert("f_Birthday", Birthday);
map.insert("f_Year", Year);
map.insert("f_Laterality", Laterality);
map.insert("f_InspectDate", InspectDate);
map.insert("f_Other", Other);
SqlGenerate sqlGener;
QString sql = sqlGener.insertData("t_RecodManage",map);
qDebug()<<sql<<endl;
return m_sqlcore.execute(sql);
}
int DataManager::getMedicRecordCount( QString sName)
{
int ret = -1;
QString querySql = QString("select count(*) from t_RecodManage where f_Name LIKE '%") + sName + "%';";
//qDebug() << "querySql = " << querySql << endl;
auto query(m_sqlcore.select(querySql));
if (!query.isNull())
{
if (query->first())
{
ret = query->value(0).toInt();
}
query->finish();
query->clear();
}
return ret;
}
uint DataManager::getMedicRecordList(const QString& fileName,
QList<MedicRecord>& filesInfo,
int& curPage,
int perPageCnt)
{
uint ret = 0;
filesInfo.clear();
QString tmpFileName = fileName;
QString querySql = QString("SELECT f_CheckNum,f_Type,f_Name, f_Sex,f_Birthday,f_Year,f_Laterality,f_InspectDate,f_Other from t_RecodManage where f_Name LIKE '%") + tmpFileName + "%'";
querySql += QString(" LIMIT %1 offset %2;").arg(perPageCnt)
.arg(curPage * perPageCnt);
auto query(m_sqlcore.select(querySql));
if (query.isNull())
{
return 0;
}
while (query->next())
{
MedicRecord info;
info.m_CheckNum= query->value(0).toString();
info.m_Type = query->value(1).toString();
info.m_Name = query->value(2).toString();
info.m_Sex = query->value(3).toString();
info.m_Birthday = query->value(4).toString();
info.m_Year = query->value(5).toString();
info.m_Laterality = query->value(6).toString();
info.m_InspectDate= query->value(7).toString();
info.m_Other = query->value(8).toString();
filesInfo.append(info);
++ret;
}
if (ret > 0)
{
++curPage;
}
query->finish();
query->clear();
return ret;
}
bool DataManager::deleteNumRecode(QString checkNum)
{
SqlGenerate sqlGener;
QString sql = QString("delete from %1 where %2").arg("t_RecodManage").arg("f_CheckNum = '"+checkNum+"';");
return m_sqlcore.execute(sql);
}

View File

@@ -0,0 +1,68 @@
#ifndef DATAMANAGER_H
#define DATAMANAGER_H
#include <QObject>
#include "SqlCore.h"
#include "SqlGenerate.h"
struct MedicRecord
{
QString m_CheckNum ;
QString m_Type ;
QString m_Name ;
QString m_Sex;
QString m_Birthday;
QString m_Year;
QString m_Laterality;
QString m_InspectDate;
QString m_Other;
};
class DataManager:public QObject
{
Q_OBJECT
private:
DataManager(QObject * parent = NULL);
~DataManager();
public:
static DataManager& instance();
//更新医院信息
bool updateHospitalInfo(QString sHostpitalName,
QString UserName,
QString sSection,
QString UserPasswd,
QString f_UserNum,
QString f_RePasswd,
QString DataName);
bool HospitalInfo(QString& sHostpitalName,
QString& UserName,
QString& sSection,
QString& UserPasswd,
QString& f_UserNum,
QString& f_RePasswd,
QString& DataName);
bool updateMedicRecord(
QString CheckNum ,
QString Type ,
QString Name ,
QString Sex,
QString _Birthday,
QString Year,
QString Laterality,
QString InspectDate,
QString Other);
int getMedicRecordCount(QString sName);
uint getMedicRecordList(const QString& fileName,
QList<MedicRecord>& filesInfo,
int& curPage,
int perPageCnt);
bool deleteNumRecode(QString checkNum);
private:
void init();
void initTable();
private:
SqlCore m_sqlcore;
};
#endif // DATAMANAGER_H

View File

@@ -47,5 +47,29 @@
<file>image/egg.png</file>
<file>image/systemsetting.png</file>
<file>image/icon_back_2.png</file>
<file>image/icon_HighFreq.png</file>
<file>image/icon_Amplitude.png</file>
<file>image/icon_PowerFreNotch.png</file>
<file>image/icon_TimeConst.png</file>
<file>image/icon_Wavevelocity.png</file>
<file>image/icon_LowerFreq.png</file>
<file>image/EGG_icon_DeleteSh_checked.png</file>
<file>image/EGG_icon_DeleteSh_hover.png</file>
<file>image/EGG_icon_Modify.png</file>
<file>image/EGG_icon_Modify_checked.png</file>
<file>image/EGG_icon_Modify_hover.png</file>
<file>image/EGG_icon_newShec.png</file>
<file>image/EGG_icon_newShec_checked.png</file>
<file>image/EGG_icon_newShec_hover.png</file>
<file>image/EGG_icond_DeleteSh.png</file>
<file>qssstyle.qss</file>
<file>image/acq.png</file>
<file>image/data.png</file>
<file>image/img_BEAM.png</file>
<file>image/setup.png</file>
<file>image/dateEdit.png</file>
<file>image/dateEdit_disable.png</file>
<file>image/dateEdit_hover.png</file>
<file>image/dateEdit_pressed.png</file>
</qresource>
</RCC>

View File

@@ -0,0 +1,23 @@
#include "framebtn.h"
#include "ui_framebtn.h"
FrameBtn::FrameBtn(QWidget *parent) :
QFrame(parent),
ui(new Ui::FrameBtn)
{
ui->setupUi(this);
ui->label->setStyleSheet("{padding-top: 2px;\
background-repeat: no-repeat;\
background-color: #60C171;\
text-align: bottom;\
padding-bottom: 2px;\
font-size: 12px;\
color: #FFFFFF;}");
ui->label_2->setStyleSheet("");
ui->label_3->setStyleSheet("");
}
FrameBtn::~FrameBtn()
{
delete ui;
}

View File

@@ -0,0 +1,22 @@
#ifndef FRAMEBTN_H
#define FRAMEBTN_H
#include <QFrame>
namespace Ui {
class FrameBtn;
}
class FrameBtn : public QFrame
{
Q_OBJECT
public:
explicit FrameBtn(QWidget *parent = nullptr);
~FrameBtn();
private:
Ui::FrameBtn *ui;
};
#endif // FRAMEBTN_H

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FrameBtn</class>
<widget class="QFrame" name="FrameBtn">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>450</width>
<height>500</height>
</rect>
</property>
<property name="windowTitle">
<string>Frame</string>
</property>
<property name="inputMethodHints">
<set>Qt::ImhNone</set>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>45</x>
<y>52</y>
<width>240</width>
<height>87</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>30</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>脑电采集</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>44</x>
<y>138</y>
<width>278</width>
<height>47</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Source Code Pro</family>
<pointsize>40</pointsize>
</font>
</property>
<property name="text">
<string>TextLabel</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>90</x>
<y>290</y>
<width>72</width>
<height>15</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>160</x>
<y>270</y>
<width>160</width>
<height>80</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout"/>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -10,6 +10,8 @@ FrameWindow::FrameWindow(QWidget * parent )
init();
initLay();
initConnect();
setWindowFlags(Qt::FramelessWindowHint); // 去掉边框
setAttribute(Qt::WA_TranslucentBackground); // 背景透明
}
FrameWindow::~FrameWindow()
{
@@ -21,7 +23,7 @@ void FrameWindow::init()
m_stackWidget.setCurrentWidget(&m_MainWindow);
setWindowTitle(" ");
setObjectName("FrameWindow");
this->setStyleSheet("QWidget{background-color:#ffffff;}");
}
@@ -66,18 +68,18 @@ void FrameWindow::slotClickedChanged(QString btnName)
{
qDebug()<<btnName <<endl;
if(btnName.compare("EEG") == 0)
if(btnName.compare("EEG",Qt::CaseInsensitive) == 0)
{
m_stackWidget.addWidget(&m_Egg);
m_stackWidget.setCurrentWidget(&m_Egg);
}
else if(btnName.compare("DataProcess") == 0)
else if(btnName.compare("DataProcess",Qt::CaseInsensitive) == 0)
{
m_stackWidget.addWidget(&m_DataProcess);
m_stackWidget.setCurrentWidget(&m_DataProcess);
}
else if(btnName.compare("SystemSetting") == 0)
else if(btnName.compare("SystemSetting",Qt::CaseInsensitive) == 0)
{
m_stackWidget.addWidget(&m_SystemSetting);
m_stackWidget.setCurrentWidget(&m_SystemSetting);

View File

@@ -5,6 +5,14 @@
#include "systemsettingwidget.h"
#include "dataprocesswidget.h"
#include "eggwidget.h"
#include <QPushButton>
#include <QStyleOption>
#include <QPaintEvent>
#include <QPainter>
class FrameWindow:public QWidget
{
Q_OBJECT
@@ -15,6 +23,14 @@ public:
void init();
void initLay();
bool initConnect();
void paintEvent(QPaintEvent* event)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
private slots:
void slotClickedChanged(QString);
private:

View File

@@ -3,6 +3,7 @@
#include <QVBoxLayout>
#include <QGridLayout>
#include <QDebug>
#include "datamanager.h"
HospitalInfo::HospitalInfo(QWidget * parent ):QWidget (parent)
{
init();
@@ -16,75 +17,433 @@ HospitalInfo::~HospitalInfo()
}
void HospitalInfo::init()
{
this->setStyleSheet("QWidget \
{\
background-color:white;\
border-radius:10px;\
}"\
);
m_labHospitalInfo.setText("医院信息:");;
m_labHospitalInfo.setStyleSheet("width: 128px; height: 46px;font-family: 思源黑体;font-size: 32px;font-weight: 500; color: #0D9DDB;");
m_labStart1.setText("*");
m_labStart2.setText("*");
m_labStart1.setObjectName("labStar");
m_labStart2.setObjectName("labStar");
m_labStart1.setFixedWidth(10);
m_labStart2.setFixedWidth(10);
//m_labStart1.setStyleSheet("color:red");
//m_labStart2.setStyleSheet("color:red");
//医院名称
m_labHospitalName.setText(tr("HospitalName"));
m_labHospitalName.setText("医院名称:");
m_labHospitalName.setObjectName("labhospitalName");
//科室
m_labSection.setText("科 室:");;
m_labSection.setObjectName("labSection");
//用户人数
m_labUserNum.setText(" 用户人数:");;
m_labUserNum.setObjectName("labUserNum");
//数据名称
m_labDataBaseName.setText("数据名称:");;
m_labDataBaseName.setObjectName("labDataBaseName");
//用户名称
m_labUser.setText("用户名称:");
m_labUser.setObjectName("labUser");
//用户名称
m_labpasswd.setText("用户密码:");;
m_labpasswd.setObjectName("labpasswd");
//确认密码
m_labRepasswd.setText("确认密码:");;
m_labRepasswd.setObjectName("labRepasswd");
//确认
m_btnOK.setText("确认");;
m_btnCancel.setText("取消");;
int ihight = 40;
m_labStart1.setFixedHeight(ihight);
m_labStart2.setFixedHeight(ihight);
//医院名称
m_labHospitalName.setFixedHeight(ihight);
m_editHospitalName.setFixedHeight(ihight);
//科室
m_labSection.setFixedHeight(ihight);
m_editSection.setFixedHeight(ihight);
//用户人数
m_labUserNum.setFixedHeight(ihight);
m_editUserNum.setFixedHeight(ihight);
//数据名称
m_labDataBaseName.setFixedHeight(ihight);
m_editDataBaseName.setFixedHeight(ihight);
//用户名称
m_labUser.setFixedHeight(ihight);
m_editUser.setFixedHeight(ihight);
//用户密码
m_labpasswd.setFixedHeight(ihight);
m_editPasswd.setFixedHeight(ihight);
//确认密码
m_labRepasswd.setFixedHeight(ihight);
m_editRePasswd.setFixedHeight(ihight);
#if 0
int iwidth = 40;
//医院名称
m_labHospitalName.setFixedHeight(iwidth);
//科室
m_labSection.setText(tr("Section"));
m_labSection.setFixedHeight(iwidth);
//用户数
m_labUserNum.setText(tr("UserNum"));;
//用户
m_labUserNum.setFixedHeight(iwidth);
//数据名称
m_labDataBaseName.setText(tr("DataBaseName"));
//用户名
m_labUser.setText(tr("User"));
m_labpasswd.setText(tr("Passwd"));
//数据名称
m_labDataBaseName.setFixedHeight(iwidth);
//用户名称
m_labUser.setFixedHeight(iwidth);
//用户名称
m_labpasswd.setFixedHeight(iwidth);
//确认密码
m_labRepasswd.setFixedHeight(iwidth);
int iwidth = QFontMetrics(this->font()).width("医院名称")+8;
//医院名称
m_labHospitalName.setFixedWidth(iwidth);
//科室
m_labSection.setFixedWidth(iwidth);
//用户人数
m_labUserNum.setFixedWidth(iwidth+10);
//数据名称
m_labDataBaseName.setFixedWidth(iwidth+10);
//用户名称
m_labUser.setFixedWidth(iwidth+10);
//用户名称
m_labpasswd.setFixedWidth(iwidth+10);
//确认密码
m_labRepasswd.setFixedWidth(iwidth+10);
#endif
//确认
m_btnOK.setText(tr("Confirm"));
m_btnOK.setText("确认");;
m_btnCancel.setText("取消");;
m_btnOK.setStyleSheet("QPushButton{\
background: white;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:hover{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:pressed{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:checked{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}");
m_btnCancel.setStyleSheet("QPushButton{\
background: white;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:hover{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:pressed{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:checked{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}");
m_btnCancel.setMinimumWidth(100);
m_btnOK.setMinimumWidth(100);
#if 0
int ediWidth = 150;
//医院信息
//医院名称
m_labHospitalName.setFixedWidth(ediWidth);
m_editHospitalName.setFixedWidth(ediWidth);
//科室
m_editSection.setFixedWidth(ediWidth);
m_editSection.setFixedWidth(ediWidth);;
//用户人数
m_editUserNum.setFixedWidth(ediWidth);
m_editUserNum.setFixedWidth(ediWidth);;
//数据名称
m_labHospitalName.setFixedWidth(ediWidth);
m_editDataBaseName.setFixedWidth(ediWidth);;
//用户名称
m_labHospitalName.setFixedWidth(ediWidth);
m_editUser.setFixedWidth(ediWidth);;
//用户密码
m_labHospitalName.setFixedWidth(ediWidth);
m_editPasswd.setFixedWidth(ediWidth);;
//确认密码
m_labHospitalName.setFixedWidth(ediWidth);
m_editRePasswd.setFixedWidth(ediWidth);;
#endif
}
void HospitalInfo::initLay()
{
#if 0
QGridLayout * gridlaySearch = new QGridLayout;
QHBoxLayout * hlay = new QHBoxLayout;
QVBoxLayout * vlay = new QVBoxLayout;
vlay->addLayout(gridlaySearch);
int width_space = 60;
QHBoxLayout * hlay0 = new QHBoxLayout;
hlay0->addWidget(&m_labHospitalInfo);
QHBoxLayout * hlay = new QHBoxLayout;
hlay->addSpacing(width_space);
hlay->addWidget(&m_labStart2);
hlay->addWidget(&m_labHospitalName);
hlay->addWidget(&m_editHospitalName);
hlay->addWidget(&m_labUser);
hlay->addWidget(&m_editUser);
//科室
QHBoxLayout * hlay1 = new QHBoxLayout;
hlay1->addSpacing(width_space);
hlay1->addWidget(&m_labStart1);
hlay1->addWidget(&m_labSection);//
hlay1->addWidget(&m_editSection);
hlay1->addWidget(&m_labpasswd);
hlay1->addWidget(&m_editPasswd);
//用户人数
QHBoxLayout * hlay2 = new QHBoxLayout;
hlay2->addSpacing(width_space);
hlay2->addWidget(&m_labUserNum);
hlay2->addWidget(&m_editUserNum);
hlay2->addWidget(&m_labRepasswd);
hlay2->addWidget(&m_editRePasswd);
//数据名称
QHBoxLayout * hlay3 = new QHBoxLayout;
hlay3->addSpacing(width_space);
hlay3->addWidget(&m_labDataBaseName);
hlay3->addWidget(&m_editDataBaseName);
QHBoxLayout * hlay4 = new QHBoxLayout;
hlay4->addStretch();
hlay4->addWidget(&m_btnOK);
hlay4->addWidget(&m_btnCancel);
hlay4->addStretch();
QVBoxLayout * vlay = new QVBoxLayout;
vlay->addLayout(hlay0);
vlay->addSpacing(30);
vlay->addLayout(hlay);
vlay->addLayout(hlay1);
vlay->addLayout(hlay2);
vlay->addLayout(hlay3);
vlay->addStretch();
setLayout(vlay);
int col = 0;
int row = 0;
gridlaySearch->addWidget(&m_labHospitalName,row,col);
gridlaySearch->addWidget(&m_editHospitalName,row,++col);
row ++;
col = 0;
gridlaySearch->addWidget(&m_labSection,row,col);
gridlaySearch->addWidget(&m_editSection,row,++col);
row ++;
col = 0;
gridlaySearch->addWidget(&m_labUserNum,row,col);
gridlaySearch->addWidget(&m_editUserNum,row,++col);
hlay0->setSpacing(0);
hlay->setSpacing(0);
hlay1->setSpacing(0);
hlay2->setSpacing(0);
hlay3->setSpacing(0);
hlay4->setSpacing(0);
row ++;
col = 0;
gridlaySearch->addWidget(&m_labDataBaseName,row,col);
gridlaySearch->addWidget(&m_editDataBaseName,row,++col);
QWidget * w = new QWidget;
w->setLayout(vlay);
row ++;
col = 0;
gridlaySearch->addWidget(&m_labUser,row,col);
gridlaySearch->addWidget(&m_editUser,row,++col);
QVBoxLayout * hlayall = new QVBoxLayout;
hlayall->addWidget(w);
hlayall->addLayout(hlay4);
row ++;
col = 0;
gridlaySearch->addWidget(&m_labpasswd,row,col);
gridlaySearch->addWidget(&m_editPasswd,row,++col);
w->setStyleSheet("QWidget \
{\
background-color:white;\
border-radius:10px;\
}"\
);
hlay->addStretch();
hlay->addWidget(&m_btnOK);
hlay->addStretch();
setLayout(hlayall);
#else
QVBoxLayout * vlay1 = new QVBoxLayout;
QHBoxLayout * hlay = new QHBoxLayout;
hlay->addWidget(&m_labStart2);
hlay->addWidget(&m_labHospitalName);
vlay1->addLayout(hlay);
QHBoxLayout * hlay2 = new QHBoxLayout;
hlay2->addWidget(&m_labStart1);
hlay2->addWidget(&m_labSection);
vlay1->addLayout(hlay2);
vlay1->addWidget(&m_labUserNum);
vlay1->addWidget(&m_labDataBaseName);
vlay1->addStretch();
QVBoxLayout * vlay2 = new QVBoxLayout;
vlay2->addWidget(&m_editHospitalName);
vlay2->addWidget(&m_editSection);
vlay2->addWidget(&m_editUserNum);
vlay2->addWidget(&m_editDataBaseName);
vlay2->addStretch();
QVBoxLayout * vlay3= new QVBoxLayout;
vlay3->addWidget(&m_labUser);
vlay3->addWidget(&m_labpasswd);
vlay3->addWidget(&m_labRepasswd);
vlay3->addStretch();
QVBoxLayout * vlay4= new QVBoxLayout;
vlay4->addWidget(&m_editUser);
vlay4->addWidget(&m_editPasswd);
vlay4->addWidget(&m_editRePasswd);
vlay4->addStretch();
QHBoxLayout * hlay4 = new QHBoxLayout;
hlay4->addStretch();
hlay4->addWidget(&m_btnOK);
hlay4->addWidget(&m_btnCancel);
hlay4->addStretch();
QHBoxLayout * hlayAll = new QHBoxLayout;
hlayAll->addLayout(vlay1);
hlayAll->addLayout(vlay2);
hlayAll->addLayout(vlay3);
hlayAll->addLayout(vlay4);
int ispace = 3;
vlay1->setSpacing(ispace);
vlay2->setSpacing(ispace);
vlay3->setSpacing(ispace);
vlay4->setSpacing(ispace);
QVBoxLayout * vall = new QVBoxLayout;
//vall->addLayout(hlayAll);
QWidget * w = new QWidget;
QHBoxLayout * hlayw = new QHBoxLayout;
hlayw->addWidget(&m_labHospitalInfo );
QVBoxLayout * vlayw = new QVBoxLayout;
vlayw->addLayout(hlayw);
vlayw->addLayout(hlayAll);
w->setLayout(vlayw);
vall->addWidget(w);
vall->addLayout(hlay4);
vall->addStretch();
setLayout(vall);
#endif
}
bool HospitalInfo::initConnect()
{
bool reok;
reok = connect(&m_btnOK,SIGNAL(clicked()),this,SLOT(slotSave()));
if(!reok)
{
qDebug()<<"save connect failed"<<endl;
}
}
void HospitalInfo::slotSave()
{
//医院名称
QString sHostpitalName = m_editHospitalName.text();
//科室
QString sSection = m_editSection.text();
//用户人数
QString UserNum = m_editUserNum.text();
//数据名称
QString DataName = m_editDataBaseName.text();
//用户名称
QString UserName = m_editUser.text();
//用户密码
QString UserPasswd = m_editPasswd.text();
//确认密码
QString RePasswd = m_editRePasswd.text();
DataManager::instance().updateHospitalInfo( sHostpitalName,
UserName,
sSection,
UserPasswd,
UserNum,
RePasswd,
DataName);
slotUpdateShow();
}
void HospitalInfo::slotUpdateShow()
{
QString sHostpitalName;
QString UserName;
QString sSection;
QString UserPasswd;
QString UserNum;
QString RePasswd;
QString DataName;
DataManager::instance().HospitalInfo( sHostpitalName,
UserName,
sSection,
UserPasswd,
UserNum,
RePasswd,
DataName);
//医院名称
m_editHospitalName.setText(sHostpitalName);
//科室
m_editSection.setText(sSection);
//用户人数
m_editUserNum.setText(UserNum);
//数据名称
m_editDataBaseName.setText(DataName);
//用户名称
m_editUser.setText(UserName);
//用户密码
m_editPasswd.setText(UserPasswd);
//确认密码
m_editRePasswd.setText(RePasswd);
}
void HospitalInfo::slotCancel()
{
//
}

View File

@@ -17,28 +17,43 @@ public:
void init();
void initLay();
bool initConnect();
private slots:
void slotSave();
void slotCancel();
public slots:
void slotUpdateShow();
private:
//医院信息
QLabel m_labHospitalInfo;
QLabel m_labStart1;
QLabel m_labStart2;
//医院名称
QLabel m_labHospitalName;
QLineEdit m_editHospitalName;
//科室
QLabel m_labSection;
QLineEdit m_editSection;
//用户数
//用户
QLabel m_labUserNum;
QLineEdit m_editUserNum;
//数据名称
//数据名称
QLabel m_labDataBaseName;
QLineEdit m_editDataBaseName;
//用户名
//用户名
QLabel m_labUser;
QLineEdit m_editUser;
//用户密码
QLabel m_labpasswd;
QLineEdit m_editPasswd;
//确认密码
QLabel m_labRepasswd;
QLineEdit m_editRePasswd;
//确认
QPushButton m_btnOK;
QPushButton m_btnCancel;
};
#endif // HOSPITALINFO_H

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 815 B

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 638 B

After

Width:  |  Height:  |  Size: 638 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

View File

@@ -0,0 +1,595 @@
#include "leadscheme.h"
#include <QDebug>
#include <QJsonObject>
#include <QJsonValue>
#include <QButtonGroup>
#include "operatorjson.h"
#include <QApplication>
#include <QScrollArea>
#include <QDir>
#include <QFileInfoList>
#include <QFileInfo>
#include "logger.h"
LeadScheme::LeadScheme(QWidget * parent ):QWidget (parent)
{
init();
initconnect();
initLay();
}
LeadScheme::~LeadScheme()
{
}
void LeadScheme::init()
{
QSize sizetemp(60,60);
m_btnOK.setFixedSize(sizetemp);
m_btndelete.setFixedSize(sizetemp);
m_btnNew.setFixedSize(sizetemp);
// m_btnNew.setText("新建");
// m_btndelete.setText("删除");
// m_btnCancel.setText("取消");
// m_btnOK.setText("修改");
m_btnOK.setStyleSheet("QPushButton{border-image:url(:/image/EGG_icon_Modify.png);}"
"QPushButton:hover{border-image:url(:/image/EGG_icon_Modify_hover.png);}"
"QPushButton:pressed{border-image:url(:/image/EGG_icon_Modify_checked.png);}"
);
m_btndelete.setStyleSheet("QPushButton{border-image:url(:/image/EGG_icond_DeleteSh.png);}"
"QPushButton:hover{border-image:url(:/image/EGG_icon_DeleteSh_hover.png);}"
"QPushButton:pressed{border-image:url(:/image/EGG_icon_DeleteSh_checked.png);}"
);
m_btnNew.setStyleSheet("QPushButton{border-image:url(:/image/EGG_icon_newShec.png);}"
"QPushButton:hover{border-image:url(:/image/EGG_icon_newShec_hover.png);}"
"QPushButton:pressed{border-image:url(:/image/EGG_icon_newShec_checked.png);}"
);
}
bool LeadScheme::initconnect()
{
bool bCon = true;
bCon = connect(&m_btnOK,SIGNAL(clicked(bool)),this,SLOT(slotSave()));
if(!bCon)
{
logError()<<"connect failed"<<endl;
return bCon;
}
bCon = connect(&m_btnNew,SIGNAL(clicked(bool)),this,SLOT(slotNew()));
if(!bCon)
{
logError()<<"connect failed"<<endl;
return bCon;
}
bCon = connect(&m_btndelete,SIGNAL(clicked(bool)),this,SLOT(slotDelete()));
if(!bCon)
{
logError()<<"connect failed"<<endl;
return bCon;
}
return bCon;
}
void LeadScheme::initLay()
{
#if 0
QLabel * labScheme = new QLabel;
labScheme->setText("导联方案");
QVBoxLayout * vlayScheme = new QVBoxLayout;
vlayScheme->addWidget(labScheme);
vlayScheme->addWidget(&m_LeadSchemes);
QLabel * labNum = new QLabel;
labNum->setText("导联");
QVBoxLayout * vlayNum = new QVBoxLayout;
vlayNum->addWidget(labNum );
vlayNum->addWidget(&m_listNum);
QLabel * labPoints = new QLabel;
labPoints->setText("测点");
QVBoxLayout * vlayPoints = new QVBoxLayout;
vlayPoints->addWidget(labPoints);
vlayPoints->addWidget(&m_listPoints);
QLabel * labExPoints = new QLabel;
labExPoints->setText("参考点");
QVBoxLayout * vlayExPoints = new QVBoxLayout;
vlayExPoints->addWidget(labExPoints );
vlayExPoints->addWidget(&m_listExPoints );
QHBoxLayout * hlayWPoints = new QHBoxLayout;
QWidget * wPoints = new QWidget;
wPoints->setLayout(hlayWPoints);
hlayWPoints->addLayout(vlayNum );
hlayWPoints->addLayout(vlayPoints);
hlayWPoints->addLayout(vlayExPoints);
QLabel * labScheme = new QLabel;
labScheme->setText("导联方案");
QVBoxLayout * vlayScheme = new QVBoxLayout;
vlayScheme->addWidget(labScheme,1,Qt::AlignHCenter);
vlayScheme->addWidget(&m_LeadSchemes,1);
vlayScheme->addStretch();
#else
QLabel * labScheme = new QLabel;
labScheme->setText("导联方案");
labScheme->setObjectName("labScheme");
QLabel * labNum = new QLabel;
labNum->setText("导联");
labNum->setObjectName("labSchemeNum");
QLabel * labPoints = new QLabel;
labPoints->setText("测点");
labPoints->setObjectName("labSchemePoints");
QLabel * labExPoints = new QLabel;
labExPoints->setText("参考点");
labExPoints->setObjectName("labSchemePointsparam");
//start
QWidget * wPoints = new QWidget;
QGridLayout * gridlayOut = new QGridLayout;
QVBoxLayout * vlayPoints = new QVBoxLayout;
vlayPoints->addLayout(gridlayOut);
// vlayPoints->addStretch();
wPoints->setLayout(vlayPoints);
QStringList strList1,strList2,strList3;
strList1<<"0"<<"1"<<"2"<<"3"<<"4"<<"5"<<"6"<<"7"<<"8"<<"9"<<"10"<<"11"<<
"12"<<"13"<<"14"<<"15";
strList2<<"F1"<<"F2"<<"F3"<<"F4"<<"C3"<<"C4"<<"P3"<<"P4"<<"O1"<<"O2"<<"F7"<<"F8"<<
"T3"<<"T4"<<"T5"<<"T6";
strList3<<"A1"<<"A2"<<"A1"<<"A1"<<"A2"<<"A1"<<"A2"<<"A1"<<"A2"<<"A1"<<"A2"<<"A1"<<
"A1"<<"A2"<<"A1"<<"A2";
pButtonGroup0 = new QButtonGroup(this);
QButtonGroup *pButtonGroup1 = new QButtonGroup(this);
// 设置互斥
pButtonGroup1->setExclusive(true);
QButtonGroup *pButtonGroup2= new QButtonGroup(this);
// 设置互斥
pButtonGroup2->setExclusive(true);
QButtonGroup *pButtonGroup3 = new QButtonGroup(this);
// 设置互斥
pButtonGroup3->setExclusive(true);
int colmn = 0;
#if 0
QStringList Sches;
Sches<<"8通道"<<"16通道"<<"64通道";
gridlayOut->addWidget(labScheme,0,colmn++,Qt::AlignHCenter);
for (int i= 0 ; i<Sches.size();i++)
{
QPushButton * btn = new QPushButton(Sches.at(i));
//btn->setMinimumHeight(minHeight);
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup0->addButton(btn);
gridlayOut->addWidget( btn,i+1,0);
btn->setCheckable(true);
}
#else
QStringList Sches;
Sches<<"8通道"<<"16通道"<<"64通道";
//遍历加载当前已经存在的方案
QDir dir(QApplication::applicationDirPath()+"/Scheme/");
QStringList fileList;
QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot | QDir::Dirs);
foreach (auto fileInfo, fileInfoList)
{
if(fileInfo.isFile())
{
if(!Sches.contains(fileInfo.baseName()) && fileInfo.baseName().compare("0")!=0)
{
Sches.append(fileInfo.baseName());
}
}
}
gridlayOut->addWidget(labScheme,0,colmn++,Qt::AlignHCenter);
QScrollArea * scroll = new QScrollArea;
scroll->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
scroll->setWidgetResizable(true);
scroll->setAlignment(Qt::AlignRight);
QWidget * wShech = new QWidget;
gridlayOut->addWidget(scroll,1,colmn-1,12,1);
// QGridLayout * gridShech = new QGridLayout;
m_vlayHH = new QVBoxLayout;
wShech->setLayout(m_vlayHH);
for (int i= 0 ; i<Sches.size();i++)
{
QPushButton * btn = new QPushButton(Sches.at(i));
connect(btn,SIGNAL(clicked(bool)),this,SLOT(slotUpdateCurScheme()));
btn->setMaximumHeight(60);
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup0->addButton(btn);
//gridShech->addWidget( btn,i+1,0);
m_vlayHH->addWidget(btn);
btn->setCheckable(true);
m_listBtnsSchemes.append(btn);
btn->setObjectName("btnShem");
#if 1
btn->setStyleSheet("QPushButton{ background: rgb(255, 255, 255); color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; border:0px ; } \
QPushButton:hover{color: black;background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; }\
QPushButton:pressed{color: black; background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px;}\
QPushButton:checked{ color: white;background: #0D9DDB;border-radius: 8px; }");
#endif
}
m_vlayHH->addStretch();
scroll->setWidget(wShech);
QHBoxLayout * hbtn = new QHBoxLayout;
hbtn->addStretch();
hbtn->addWidget(&m_btnNew);
hbtn->addWidget(&m_btndelete);
//hbtn->addWidget(&m_btnCancel);
hbtn->addWidget(&m_btnOK);
hbtn->addStretch();
gridlayOut->addLayout(hbtn,14,colmn-1,1,1);
QLabel * desLab = new QLabel;
desLab->setObjectName("labDesShec");
desLab->setText("1 选择重构方式0-9\n(注意0方式不能重构\n2 左键点击重构选择测参点\n3左键点击部位要选择的点)");
gridlayOut->addWidget(desLab,15,colmn-1,3,1);
#endif
gridlayOut->addWidget(labNum,0,colmn++,Qt::AlignHCenter);
int minHeight = 45;
for (int i = 0 ;i<strList1.size();i++)
{
QPushButton * btn = new QPushButton(strList1.at(i));
//btn->setMinimumHeight(minHeight);
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup1->addButton(btn);
gridlayOut->addWidget( btn,i+1,1);
btn->setCheckable(true);
btn->setObjectName("btnShem1");
#if 1
btn->setStyleSheet("QPushButton{ background: rgb(255, 255, 255); color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; border:0px ; } \
QPushButton:hover{color: black;background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; }\
QPushButton:pressed{color: black; background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px;}\
QPushButton:checked{ color: white;background: #0D9DDB;border-radius: 8px; }");
#endif
}
gridlayOut->addWidget( labPoints,0,colmn++,Qt::AlignHCenter);
for (int i = 0 ;i<strList2.size();i++)
{
QPushButton * btn = new QPushButton(strList2.at(i));
//btn->setMinimumHeight(minHeight);
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup2->addButton(btn);
gridlayOut->addWidget( btn,i+1,2);
btn->setCheckable(true);
btn->setObjectName("btnShem1");
#if 1
btn->setStyleSheet("QPushButton{ background: rgb(255, 255, 255); color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; border:0px ; } \
QPushButton:hover{color: black;background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; }\
QPushButton:pressed{color: black; background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px;}\
QPushButton:checked{ color: white;background: #0D9DDB;border-radius: 8px; }");
#endif
}
gridlayOut->addWidget( labExPoints,0,colmn++,Qt::AlignHCenter);
for (int i = 0 ;i<strList3.size();i++)
{
QPushButton * btn = new QPushButton(strList3.at(i));
//btn->setMinimumHeight(minHeight);
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup3->addButton(btn);
gridlayOut->addWidget( btn,i+1,3);
btn->setCheckable(true);
btn->setObjectName("btnShem1");
#if 1
btn->setStyleSheet("QPushButton{ background: rgb(255, 255, 255); color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; border:0px ; } \
QPushButton:hover{color: black;background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; }\
QPushButton:pressed{color: black; background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px;}\
QPushButton:checked{ color: white;background: #0D9DDB;border-radius: 8px; }");
#endif
}
//end
#endif
QWidget * wClickedPints = new QWidget;
wClickedPints->setStyleSheet("border-image:url(:/image/img_lead.png);}");
QVBoxLayout * vlaypointsTemp = new QVBoxLayout;
m_editShecName.setFixedWidth(180);
m_editShecName.setPlaceholderText("输入方案名称");
vlaypointsTemp->addWidget(&m_editShecName);
vlaypointsTemp->addWidget(wClickedPints);
QWidget * ww =new QWidget;
ww->setLayout(vlaypointsTemp);
// wClickedPints->setFixedWidth(500);
//wClickedPints->show();
QHBoxLayout * hlayAll = new QHBoxLayout;
// hlayAll->addLayout(vlayScheme,1);
hlayAll->addWidget(wPoints,3);
hlayAll->addWidget(ww,3);
QList<QColor> colors;
colors.append(QColor(100, 184, 255));
colors.append(QColor(255, 107, 107));
colors.append(QColor(24, 189, 155));
colors.append(QColor(1, 174, 103));
colors.append(QColor(52, 73, 94));
int x = 5;
int y = 5;
int radius = 50;
QStringList listNames;
listNames<<"Fp1"<<"Fp2"
<<"F7"<<"F3"<<"Fz"<<"F4"<<"F8"
<<"A1"<<"T3"<<"C3"<<"Cz"<<"C4"<<"T4"<<"A2"
<<"T5"<<"P3" <<"Pz"<<"P4" <<"T6"
<<"O1"<<"O2";
QJsonObject json;
OperatorJson Ojson;
Ojson.readJson(QApplication::applicationDirPath()+"/Scheme/0.json",json);
qDebug()<<"hahaha"<<json<<endl;
for(int i = 0 ; i< listNames.size();i++)
{
MoveButton * btn = new MoveButton(wClickedPints);
btn->setParent(wClickedPints);
int x =json[listNames.at(i)].toObject()["x"].toInt();
int y = json[listNames.at(i)].toObject()["y"].toInt();
btn->setGeometry(x,y, radius, radius);
//x = x + radius;
btn->setText(listNames.at(i));
btn->setCanMove(true);
btn->setShowOverlay(true);
btn->setBgColor(QColor(1, 174, 103));
m_listMoveBtns.append(btn);
}
QWidget * Wall = new QWidget;
Wall->setLayout(hlayAll);
Wall->setStyleSheet("QWidget \
{\
background-color:white;\
border-radius:10px;\
}");
QVBoxLayout * vlayAll = new QVBoxLayout;
vlayAll->addWidget(Wall);
//vlayAll->addLayout(hbtn);
setLayout(vlayAll);
// setStyleSheet("QLabel{font-family: 思源黑体;font-size: 26px;font-weight: 500;color: #054578;}");
}
void LeadScheme::reLay()
{
QLayoutItem *child;
while ((child = m_vlayHH->takeAt(0)) != 0)
{
//删除Stretch(弹簧)等布局
if (child->spacerItem())
{
m_vlayHH->removeItem(child);
continue;
}
//删除布局
//删除布局
QWidget * w = child->widget();
m_vlayHH->removeWidget(child->widget());
child->widget()->setParent(0);
if (w)
{
w->deleteLater();
}
}
}
void LeadScheme::slotUpdateCurScheme()
{
//1获取方案名称
QPushButton *btn = static_cast<QPushButton*>( sender());
if(btn)
{
m_CurScheme = btn->text();
}
m_editShecName.setText(m_CurScheme);
//2检查对应的方案名称是否存在
//2.1)存在就加载原来的
QString sFileName = QApplication::applicationDirPath()+"/Scheme/"+m_CurScheme+".json";
if(QFile::exists(sFileName))
{
int radius = 50;
QJsonObject json;
OperatorJson Ojson;
Ojson.readJson(sFileName,json);
for(int i = 0 ; i< json.keys().size();i++)
{
for(int j =0 ;j < m_listMoveBtns.size();j++)
{
if(m_listMoveBtns.at(j)->getText().compare(json.keys().at(i)) ==0)
{
MoveButton * btn = m_listMoveBtns.at(j);
int x =json[json.keys().at(i)].toObject()["x"].toInt();
int y = json[json.keys().at(i)].toObject()["y"].toInt();
btn->setGeometry(x,y, radius, radius);
}
}
}
}
else // (2.2)不存在就加载模版
{
int radius = 50;
QJsonObject json;
OperatorJson Ojson;
Ojson.readJson(QApplication::applicationDirPath()+"/Scheme/0.json",json);
for(int i = 0 ; i< json.keys().size();i++)
{
for(int j =0 ;j < m_listMoveBtns.size();j++)
{
if(m_listMoveBtns.at(j)->getText().compare(json.keys().at(i)) ==0)
{
MoveButton * btn = m_listMoveBtns.at(j);
int x =json[json.keys().at(i)].toObject()["x"].toInt();
int y = json[json.keys().at(i)].toObject()["y"].toInt();
btn->setGeometry(x,y, radius, radius);
}
}
}
}
//保存最新的位置
QJsonObject jsonSave;
for(int i = 0;i< m_listMoveBtns.size();i++ )
{
auto btn = m_listMoveBtns.at(i);
QString text = btn->getText();
int x = btn->x();
int y = btn->y();
QJsonObject perJson;
perJson.insert("x",x);
perJson.insert("y",y);
jsonSave.insert(text,perJson);
qDebug()<<QString("名称:%1\tx:%2\ty:%3").arg(text).arg(x).arg(y)<<endl;
}
OperatorJson json;
json.savaJson(jsonSave,QApplication::applicationDirPath()+"/Scheme/"+m_CurScheme+".json");
}
void LeadScheme::slotSave()
{
QJsonObject jsonSave;
for(int i = 0;i< m_listMoveBtns.size();i++ )
{
auto btn = m_listMoveBtns.at(i);
QString text = btn->getText();
int x = btn->x();
int y = btn->y();
QJsonObject perJson;
perJson.insert("x",x);
perJson.insert("y",y);
jsonSave.insert(text,perJson);
qDebug()<<QString("名称:%1\tx:%2\ty:%3").arg(text).arg(x).arg(y)<<endl;
}
OperatorJson json;
json.savaJson(jsonSave,QApplication::applicationDirPath()+"/Scheme/"+m_CurScheme+".json");
}
void LeadScheme::slotNew()
{
//1 新建方案名称不为空 且不重复
QString schemeName = m_editShecName.text();
if(schemeName.isEmpty())
{
logError()<<"Shech Name is empty!"<<endl;
return ;
}
//2 判断名称是否有重复
QStringList listNames;
schemeName = schemeName.trimmed();
for(int i = 0 ; i< m_listBtnsSchemes.size();i++)
{
QString name = m_listBtnsSchemes.at(i)->text();
if(name.compare(schemeName)== 0)
{
logError()<<"Shech Name is repeated!"<<endl;
return ;
}
listNames.append(name);
}
listNames.append(schemeName);
//3 获取当前所有方案名称
m_listBtnsSchemes.clear();
reLay();
//4 重新布局
for (int i= 0 ; i<listNames.size();i++)
{
QPushButton * btn = new QPushButton(listNames.at(i));
connect(btn,SIGNAL(clicked(bool)),this,SLOT(slotUpdateCurScheme()));
btn->setMaximumHeight(60);
btn->setObjectName("btnShem");
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup0->addButton(btn);
//gridShech->addWidget( btn,i+1,0);
m_vlayHH->addWidget(btn);
btn->setCheckable(true);
m_listBtnsSchemes.append(btn);
btn->setObjectName("btnShem1");
#if 1
btn->setStyleSheet("QPushButton{ background: rgb(255, 255, 255); color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; border:0px ; } \
QPushButton:hover{color: black;background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px; }\
QPushButton:pressed{color: black; background: rgb(255, 255, 255);color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal; border-radius: 4px;}\
QPushButton:checked{ color: white;background: #0D9DDB;border-radius: 8px; }");
#endif
}
m_vlayHH->addStretch();
}
void LeadScheme::slotDelete()
{
//1 获取当前列表,从当前列表中获取出被选中的要删除的
QString sDeleName;
QStringList listNames;
for(int i = 0 ; i< m_listBtnsSchemes.size();i++)
{
if(m_listBtnsSchemes.at(i)->isChecked())
{
//logError()<<"delete:"<<m_listBtnsSchemes.at(i)->text()<<endl;
sDeleName=m_listBtnsSchemes.at(i)->text();
if(i<3)
{
return;
}
continue;
}
listNames.append(m_listBtnsSchemes.at(i)->text());
}
//2 重新布局
m_listBtnsSchemes.clear();
reLay();
//3
for (int i= 0 ; i<listNames.size();i++)
{
QPushButton * btn = new QPushButton(listNames.at(i));
connect(btn,SIGNAL(clicked(bool)),this,SLOT(slotUpdateCurScheme()));
btn->setMaximumHeight(40);
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup0->addButton(btn);
//gridShech->addWidget( btn,i+1,0);
m_vlayHH->addWidget(btn);
btn->setCheckable(true);
m_listBtnsSchemes.append(btn);
}
m_vlayHH->addStretch();
//4 删除对应的位置文件
QFile::remove( QApplication::applicationDirPath()+"/Scheme/"+sDeleName+".json");
}

View File

@@ -0,0 +1,43 @@
#ifndef LEADSCHEME_H
#define LEADSCHEME_H
#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include "navlistwidget.h"
#include "MoveButton.h"
#include <QList>
#include <QLineEdit>
#include "operatorjson.h"
#include <QApplication>
#include <QButtonGroup>
class LeadScheme:public QWidget
{
Q_OBJECT
public:
LeadScheme(QWidget * parent = NULL);
virtual ~LeadScheme();
void init();
bool initconnect();
void initLay();
private:
void reLay();
private slots:
void slotSave();
void slotNew();
void slotDelete();
void slotUpdateCurScheme();
private:
QString m_CurScheme;
QPushButton m_btnNew;
QPushButton m_btndelete;
QPushButton m_btnCancel;
QPushButton m_btnOK;
QVBoxLayout * m_vlayHH ;
QList<MoveButton*> m_listMoveBtns;
QLineEdit m_editShecName;
QList<QPushButton *> m_listBtnsSchemes;
QButtonGroup *pButtonGroup0;
};
#endif // LEADSCHEME_H

View File

@@ -0,0 +1,35 @@
#include "logger.h"
void MessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QString txt;
#if 0
switch (type)
{
case QtDebugMsg:
txt = QString("Debug: %1").arg(msg);//调试信息
break;
case QtInfoMsg:
txt = QString("Info: %1").arg(msg);//一般信息
break;
case QtWarningMsg:
txt = QString("Warning: %1").arg(msg);//警告信息
break;
case QtCriticalMsg:
txt = QString("Critical: %1").arg(msg);//严重错误信息
break;
case QtFatalMsg:
txt = QString("Fatal: %1").arg(msg);//致命错误信息
break;
}
#endif
if(type != QtCriticalMsg )
{
return ;
}
txt =msg;// txt + QString(" line:%1").arg(context.line);
QFile logFile("log.txt");
logFile.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream in(&logFile);
in << txt << endl;
}

21
xyylMCWEACSystem/logger.h Normal file
View File

@@ -0,0 +1,21 @@
#ifndef LOGGER_H
#define LOGGER_H
#include <QApplication>
#include <QFile>
#include <QDebug>
#include <QThread>
#include <iostream>
#ifndef logData
#define logData "["<< __TIME__ <<"]"<<"[line:"<<__LINE__<<"]"<<"[fuction:"<<__FUNCTION__<<"]"<<"[ID:"<<QThread::currentThreadId()<<"]"// "["<<__TIME__ <<"]"<< "["<<__FILE__ <<"]"<< "[line:"<<__LINE__<<"]"<<__FUNCTION__<<"[threadID:"<<QThread::currentThreadId()<<"]"
//#define logData "["<<__DATE__<< __TIME__ <<"]"<< "["<<__FILE__ <<"]"<< "[line:"<<__LINE__<<"]"<<__FUNCTION__
#define logDebug() qDebug()<<logData<<"logDebug:"
#define logWarning() qWarning()<<logData<<"logWarning:"
#define logError() qCritical()<<logData<<"logError:"
#define logInfo() qInfo()<<logData<<"logInfo:"
#endif
void MessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg);
#endif // LOGGER_H

View File

@@ -1,24 +1,5 @@
#include "widget.h"
#include <QApplication>
#include "regwidget.h"
#include "loginwidget.h"
#include "medicalrecordwidget.h"
#include "medicalrecordmanager.h"
#include "hospitalinfo.h"
#include <QWidget>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsPathItem>
#include <QGraphicsPolygonItem>
#include <QGraphicsTextItem>
#include <QPainterPath>
#include <QFont>
#include <QColor>
#include <QPen>
#include <QApplication>
#include <QWidget>
@@ -28,118 +9,67 @@
#include <QGraphicsTextItem>
#include <QFont>
#include <qmath.h>
#include "curchatwidget.h"
#include "DevConWidget.h"
#include "framewindow.h"
#include <QStackedWidget>
#include "navlistwidget.h"
#include "framelesswindow.h"
#include <QTextCodec>
#include "logger.h"
#include "hospitalinfo.h"
#include "framebtn.h"
#include "mainbtn.h"
void LoadStyleFile(QString strStyle)
{
QFile qss(strStyle);
qss.open(QFile::ReadOnly);
QString sqss =qss.readAll();
qApp->setStyleSheet(sqss);
qss.close();
}
#include "medicalrecordmanager.h"
#include <QCalendarWidget>
#include<QDateEdit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
#if 1
// QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
//qInstallMessageHandler(MessageHandler);
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForLocale(codec);
FrameWindow *mainw = new FrameWindow;
FramelessWindow *window = new FramelessWindow(mainw);
window->resize(300, 400);
window->showMaximized();
//a.setStyleSheet("QWidget{background-color:#ffffff;}");
// a.setStyleSheet("QWidget{background: rgb(47, 61, 82);}");
QFont globalFont;
globalFont.setFamily("黑体");
// FramelessWindow *window = new FramelessWindow(mainw);
//window->resize(300, 400);
// window->showMaximized();
mainw->showMaximized();
QFont globalFont;
globalFont.setFamily("黑体");
QApplication::setFont(globalFont);
MedicalRecordManager me;
me.show();
#if 0
CurChatWidget w;
w.show();
RegWidget re;
re.show();
DevConWidget de;
de.show();
HospitalInfo ho;
ho.show();
LoginWidget log;
log.show();
MedicalRecordWidget mew;
mew.show();
LoadStyleFile(QApplication::applicationDirPath()+"/defaultstyle.qss");
#endif
QString qss1=R"(
QLineEdit{
border: 1px solid #ABCDA0; /* 边框宽度为1px颜色为#A0A0A0 */
border-radius: 3px; /* 边框圆角 */
padding-left: 5px; /* 文本距离左边界有5px */
background-color: #F2F2F2; /* 背景颜色 */
color: #A0A0A0; /* 文本颜色 */
selection-background-color: #A0A0A0; /* 选中文本的背景颜色 */
selection-color: #F2F2F2; /* 选中文本的颜色 */
font-family: "Microsoft YaHei"; /* 文本字体族 */
font-size: 10pt; /* 文本字体大小 */
}
QLineEdit:hover { /* 鼠标悬浮在QLineEdit时的状态 */
border: 1px solid #298DFF;
border-radius: 3px;
background-color: #F2F2F2;
color: #298DFF;
selection-background-color: #298DFF;
selection-color: #F2F2F2;
}
QLineEdit[echoMode="2"] { /* QLineEdit有输入掩码时的状态 */
lineedit-password-character: 9679;
lineedit-password-mask-delay: 2000;
}
QLineEdit:disabled { /* QLineEdit在禁用时的状态 */
border: 1px solid #CDCDCD;
background-color: #CDCDCD;
color: #B4B4B4;
}
QLineEdit:read-only { /* QLineEdit在只读时的状态 */
background-color: #CDCDCD;
color: #F2F2F2;
}
QTextEdit{ color: black;
background-color: white; border:1px solid black;
}
QPushButton{border:1px solid black;}
QGroupBox{
background-color: #4F4F4F;
border: 1px solid #969696;
color: rgb(13,157,219);
border-radius: 5px;
margin-top: 2ex;
}
QDateEdit
{
border: 1px solid rgb(22,63,23);
color: black;
}
)";
a.setStyleSheet(qss1);
return a.exec();
#if 1
QDateTimeEdit date;
date.setStyleSheet("QDateTimeEdit::drop-down {\
width: 80px; \
border-left-width: 0px; \
border-image:url(:/image/dateEdit.png);\
border-left-color: gray; \
}");
date.setCalendarPopup(true);
date.show();
#else
QDateEdit date;
date.setDisplayFormat("yyyy-MM-dd hh:mm:ss.zzz");
date.setStyleSheet("QDateEdit::drop-down {\
width: 80px; \
border-left-width: 0px; \
border-image:url(:/image/dateEdit.png);\
border-left-color: gray; \
}");
date.setCalendarPopup(true);
date.show();
#endif
return a.exec();
}

View File

@@ -0,0 +1,73 @@
#include "mainbtn.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
void MainBtn::setTxt(QString str,QString str2,QString str3)
{
m_labTxt.setText(str);
m_labEgTxt.setText(str2) ;
// m_labImage.setText(str3);
m_labImage.setStyleSheet(QString("QLabel{border-image:url(:/image/%1.png);background-color: transparent;}").arg(str3));
}
MainBtn::MainBtn(QPushButton * parent ):QPushButton (parent)
{
setObjectName("MainBtn");
m_labTxt.setObjectName("MainTxt");
m_labEgTxt.setObjectName("MainTxtEn");
#if 0
this->setStyleSheet("QPushButton{border-image:url(:/image/index_bg_setting.png);}"
"QPushButton:hover{border-image:url(:/image/index_bg_setting_hover.png);}"
"QPushButton:pressed{border-image:url(:/image/index_bg_setting_checked.png);}" );
m_labTxt.setStyleSheet("font-size: 60px;font-weight: 500;color:white;background-color:transparent;");
m_labEgTxt.setStyleSheet("font-size: 60px;font-weight:normal;color:white;background-color:transparent;");
#endif
m_labTxt.setStyleSheet("font-size: 60px;font-weight: 500;color:white;background-color:transparent;");
m_labEgTxt.setStyleSheet("font-size: 60px;font-weight:normal;color:white;background-color:transparent;");
#if 1
m_labTxt.setFixedSize(QSize(240,87));
m_labImage.setFixedSize(QSize(129,117));
#endif
QHBoxLayout * hlay = new QHBoxLayout;
QHBoxLayout * hlay2 = new QHBoxLayout;
QHBoxLayout * hlay3 = new QHBoxLayout;
hlay->addWidget(&m_labTxt);
hlay->addStretch();
hlay2->addWidget(&m_labEgTxt);
hlay2->addStretch();
hlay3->addStretch();
hlay3->addWidget(&m_labImage);
QVBoxLayout * vlay = new QVBoxLayout;
vlay->addLayout(hlay);
vlay->addLayout(hlay2);
vlay->addSpacing(143);
vlay->addLayout(hlay3);
vlay->setSpacing(0);
vlay->setContentsMargins(45,45,45,45);
setFixedSize(QSize(450,500));
setLayout(vlay);
}
MainBtn::~MainBtn()
{
}
#if 0
void MainBtn::mouseReleaseEvent(QMouseEvent * ev)
{
}
void MainBtn::paintEvent(QPaintEvent* event)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
#endif

View File

@@ -0,0 +1,35 @@
#ifndef MAINBTN_H
#define MAINBTN_H
#include <QFrame>
#include <QLabel>
#include <QPushButton>
#include <QStyleOption>
#include <QPaintEvent>
#include <QPainter>
class MainBtn:public QPushButton
{
Q_OBJECT
public:
MainBtn(QPushButton * parent =NULL);
~MainBtn();
void setTxt(QString str,QString str2,QString str3);
// void paintEvent(QPaintEvent* event);
void paintEvent(QPaintEvent* event)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
signals:
// void clicked();
protected:
//virtual void mouseReleaseEvent(QMouseEvent * ev);
private:
QLabel m_labTxt;
QLabel m_labEgTxt;
QLabel m_labImage;
};
#endif // MAINBTN_H

View File

@@ -9,6 +9,7 @@ MainWindow::MainWindow(QWidget * parent ):QWidget(parent)
init();
initLay();
initConnect();
}
MainWindow::~MainWindow()
{
@@ -22,10 +23,10 @@ void MainWindow::init()
m_btnEEG.setObjectName("EEG");
m_btnDataProcess.setObjectName("DataProcess");
m_CompanyDes.setText("河南翔宇医疗设备股份有限公司");
QFont font ("Microsoft YaHei", 10, 85);
m_CompanyDes.setFont(font);
m_CompanyDes.setStyleSheet("color:Gray;");
m_btnDataProcess.setTxt("数据处理","Data processing","data");
m_btnEEG.setTxt("脑电采集","EGG acquisition","acq");
m_btnSystemSetting.setTxt("系统设置","Set up","setup");
}
@@ -34,6 +35,12 @@ void MainWindow::initLay()
QHBoxLayout * hlay = new QHBoxLayout;
m_btnSystemSetting.setObjectName("systemsetting");
m_btnEEG.setObjectName("egg");
m_btnDataProcess.setObjectName("dataprocess");
#if 0
m_btnSystemSetting.setStyleSheet("border-image:url(:/image/index_bg_setting_char.png);}");
m_btnEEG.setStyleSheet("border-image:url(:/image/index_bg_EEG_char.png);}");
m_btnDataProcess.setStyleSheet("border-image:url(:/image/index_bg_data_char.png);}");
@@ -52,6 +59,7 @@ void MainWindow::initLay()
"QPushButton:hover{border-image:url(:/image/index_bg_data_hover.png);}"
"QPushButton:pressed{border-image:url(:/image/index_bg_data_checked.png);}"
);
m_btnSystemSetting.setMaximumSize(QSize(400,300));
m_btnEEG.setMaximumSize(QSize(400,300));
m_btnDataProcess.setMaximumSize(QSize(400,300));
@@ -60,6 +68,7 @@ void MainWindow::initLay()
m_btnSystemSetting.setMinimumSize(QSize(300,200));
m_btnEEG.setMinimumSize(QSize(300,300));
m_btnDataProcess.setMinimumSize(QSize(300,300));
#endif
m_btnSystemSetting.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_btnEEG.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

View File

@@ -9,6 +9,7 @@
#include <QLineEdit>
#include <QPushButton>
#include "titlewidget.h"
#include "mainbtn.h"
class MainWindow: public QWidget
{
Q_OBJECT
@@ -26,11 +27,11 @@ signals:
private:
TitleWidget m_titleWidget;
//系统设置
QPushButton m_btnSystemSetting;
MainBtn m_btnSystemSetting;
//脑电采集Electroencephalography
QPushButton m_btnEEG;
MainBtn m_btnEEG;
//数据处理Datarocessing
QPushButton m_btnDataProcess;
MainBtn m_btnDataProcess;
//河南翔宇医疗设备股份有限公司
QLabel m_CompanyDes;
};

View File

@@ -3,7 +3,7 @@
#include <QVBoxLayout>
#include <QGridLayout>
#include <QDebug>
#include <QScrollBar>
MedicalRecordManager::MedicalRecordManager(QWidget * parent):QWidget(parent)
{
init();
@@ -11,9 +11,8 @@ MedicalRecordManager::MedicalRecordManager(QWidget * parent):QWidget(parent)
initConnect();
initTable();
m_labMedRecManager.setStyleSheet("QLabel { font-size: 14px;\
color: rgb(13,157,219); }\
");
m_btnOpen.setObjectName("open");
#if 0
m_btnOpen.setStyleSheet("QPushButton{\
background: white;\
border-radius:10px;padding:7px 10px;\
@@ -30,6 +29,7 @@ MedicalRecordManager::MedicalRecordManager(QWidget * parent):QWidget(parent)
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}");
#endif
m_btnEdit.setStyleSheet("QPushButton{\
background: white;\
color: green;\
@@ -174,7 +174,12 @@ MedicalRecordManager::~MedicalRecordManager()
}
void MedicalRecordManager::init()
{
//当前页
m_currentPage = 0 ;
m_labMedRecManager.setText("病例管理");
m_labMedRecManager.setObjectName("labMedManager");
m_labMedRecManager.setStyleSheet("width: 136px; height: 46px;font-family: 思源黑体;font-size: 32px;font-weight: 500; color: #0D9DDB;");
//QAction
m_actSearch = new QAction;
m_actSearch->setToolTip("搜索");//设置鼠标悬浮的提示
@@ -268,19 +273,23 @@ void MedicalRecordManager::initLay()
}
bool MedicalRecordManager::initConnect()
{
connect(m_actSearch, SIGNAL(triggered(bool)), this, SLOT(slotSearch()));
connect(&m_btnUpPage,SIGNAL(clicked()),this,SLOT(slotPreviousPage()));
connect(&m_btnNetPage,SIGNAL(clicked()),this,SLOT(slotNextPage()));
connect(&m_btnDelete,SIGNAL(clicked()),this,SLOT(slotDelete()));
return true;
}
void MedicalRecordManager::slotSearch()
{
qDebug()<<"search"<<endl;
m_currentPage = 0;
updateContext();
}
void MedicalRecordManager::initTable()
{
m_tableWidget.setFocusPolicy(Qt::NoFocus);
m_tableWidget.setColumnCount(8);
m_tableWidget.setColumnCount(9);
m_tableWidget.setRowCount(100);
//m_tableWidget.setShowGrid(false);
QFont font;
@@ -289,6 +298,8 @@ void MedicalRecordManager::initTable()
font.setBold(false);
m_tableWidget.horizontalHeader()->setFont(font);
m_tableWidget.setFont(font);
m_tableWidget.verticalScrollBar()->setDisabled(true); // 禁用滚动
m_tableWidget.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//隐藏滚动条
//设置全选按钮
//connect(&m_tableWidget, SIGNAL(itemClicked(QTableWidgetItem *)), this, SLOT(slotCilclidItem(QTableWidgetItem *)), Qt::QueuedConnection);
@@ -302,10 +313,13 @@ void MedicalRecordManager::initTable()
/*单个选中 QAbstractItemView::ExtendedSelection); 可以选中多个*/
m_tableWidget.horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
m_tableWidget.horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
//m_tableWidget.horizontalHea der()->setSectionResizeMode(3, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(3, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(4, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(5, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(6, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(7, QHeaderView::ResizeToContents);
m_tableWidget.setEditTriggers(QAbstractItemView::NoEditTriggers);
m_tableWidget.setShowGrid(false);
for (int row = 0; row < m_tableWidget.rowCount(); row++)
@@ -318,6 +332,7 @@ void MedicalRecordManager::initTable()
QTableWidgetItem *item_hash6 = new QTableWidgetItem;
QTableWidgetItem *item_butt7 = new QTableWidgetItem;
QTableWidgetItem *item_createDate8 = new QTableWidgetItem;
QTableWidgetItem *item_createDate9 = new QTableWidgetItem;
item_id->setData(Qt::DisplayRole, "");
item_fileName->setData(Qt::DisplayRole, "");
@@ -338,13 +353,187 @@ void MedicalRecordManager::initTable()
m_tableWidget.setItem(row, 5, item_hash6);
m_tableWidget.setItem(row, 6, item_butt7);
m_tableWidget.setItem(row, 7, item_createDate8);
m_tableWidget.setItem(row, 8, item_createDate9);
//m_tableWidget.item(row, 4)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
QStringList lstHHead;
/*("序号") "文件") << "修改日期"*/
lstHHead << tr("序号") << tr("检查号") << tr("类别") << tr("姓名") <<tr("性别")
<< tr("年龄") <<tr("左右利")<<tr("其他信息");
<< tr("年龄") <<tr("左右利")<<tr("检查日期")<<tr("其他信息");
m_tableWidget.setHorizontalHeaderLabels(lstHHead);//setWordWrap(true)
//m_tableWidget.show();
}
void MedicalRecordManager::slotPreviousPage()
{
if (m_currentPage > 1)
{
m_currentPage = m_currentPage - 2;
}
else
{
return;
}
updateContext();
}
void MedicalRecordManager::slotNextPage()
{
updateContext();
}
void MedicalRecordManager::updateContext()
{
QString fileName = m_editSearch.text();
fileName = fileName.simplified();
QList<MedicRecord> lstInfo;
int rowCounts = DataManager::instance().getMedicRecordCount(fileName);
qDebug() << fileName << rowCounts << endl;
double page = (double)rowCounts / (double)100;
if (page > (int)page)
{
page = page + 1;
}
else if (page == 0)
{
page = 1;
}
if (m_currentPage == (int)page)
{
return;
}
if(m_currentPage!=0)
{
m_labPageNumTxt.setText(QString("%1/%2").arg(m_currentPage).arg(QString::number((int)page)));
}
else
{
m_labPageNumTxt.setText(QString("%1/%2").arg(1).arg(QString::number((int)page)));
}
DataManager::instance().getMedicRecordList(fileName, lstInfo, m_currentPage, m_tableWidget.rowCount());
m_tableWidget.horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
m_tableWidget.verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
QString::number((int)page);//设置一共有多少页
int row = 0;
for (; row < lstInfo.size(); row++)
{
int col=0;
QTableWidgetItem *item_id = m_tableWidget.item(row, col++);
QTableWidgetItem *item_m_CheckNum = m_tableWidget.item(row, col++);
QTableWidgetItem *item_type = m_tableWidget.item(row, col++);
QTableWidgetItem *item_Name = m_tableWidget.item(row, col++);
QTableWidgetItem *item_Sex = m_tableWidget.item(row, col++);
QTableWidgetItem *item_Age = m_tableWidget.item(row, col++);
QTableWidgetItem *item_Laterality = m_tableWidget.item(row, col++);
QTableWidgetItem *item_inspectDate = m_tableWidget.item(row, col++);
QTableWidgetItem *item_other = m_tableWidget.item(row, col++);
item_id->setCheckState(Qt::Unchecked);
item_id->setFlags(Qt::ItemIsEditable| Qt::ItemIsSelectable| Qt::ItemIsUserCheckable| Qt::ItemIsEnabled| Qt::ItemIsDragEnabled| Qt::ItemIsDropEnabled);
int id_page = 0;
if (m_currentPage == 0)
{
id_page = 1;
}
else
{
id_page = m_currentPage;
}
item_id->setData(Qt::DisplayRole, row + 1 + (id_page - 1) * 100);
//设置数据
item_m_CheckNum->setData(Qt::DisplayRole, lstInfo.at(row).m_CheckNum);
item_type->setData(Qt::DisplayRole, lstInfo.at(row).m_Type);
item_Name->setData(Qt::DisplayRole, lstInfo.at(row).m_Name);
item_Sex->setData(Qt::DisplayRole, lstInfo.at(row).m_Sex);
item_Age->setData(Qt::DisplayRole, lstInfo.at(row).m_Year);
item_Laterality->setData(Qt::DisplayRole, lstInfo.at(row).m_Laterality);
item_inspectDate->setData(Qt::DisplayRole, lstInfo.at(row).m_InspectDate);
item_other->setData(Qt::DisplayRole, lstInfo.at(row).m_Other);
item_m_CheckNum->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
item_type->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
item_Name->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
item_Sex->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
item_Age->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
item_Laterality->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
item_inspectDate->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
item_other->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
if (row < m_tableWidget.rowCount())
{
for (int i = row; i < m_tableWidget.rowCount(); i++)
{
int col=0;
QTableWidgetItem *item_id = m_tableWidget.item(i, col++);
QTableWidgetItem *item_m_CheckNum = m_tableWidget.item(i, col++);
QTableWidgetItem *item_type = m_tableWidget.item(i, col++);
QTableWidgetItem *item_Name = m_tableWidget.item(i, col++);
QTableWidgetItem *item_Sex = m_tableWidget.item(i, col++);
QTableWidgetItem *item_Age = m_tableWidget.item(i, col++);
QTableWidgetItem *item_Laterality = m_tableWidget.item(i, col++);
QTableWidgetItem *item_inspectDate = m_tableWidget.item(i, col++);
QTableWidgetItem *item_other = m_tableWidget.item(i, col++);
item_id->setData(Qt::CheckStateRole, QVariant());
item_id->setData(Qt::DisplayRole, "");
//item_id->setFlags(Qt::NoItemFlags);
item_m_CheckNum->setData(Qt::DisplayRole, "");
item_type->setData(Qt::DisplayRole, "");
item_Name->setData(Qt::DisplayRole, "");
item_Sex->setData(Qt::DisplayRole, "");
item_Age->setData(Qt::DisplayRole, "");
item_Age->setData(Qt::DisplayRole, "");
item_Laterality->setData(Qt::DisplayRole, "");
item_inspectDate->setData(Qt::DisplayRole, "");
item_other->setData(Qt::DisplayRole, "");
}
}
if (m_currentPage == 0)
{
//m_labCurentPage.setText(QString::number(1));
}
else
{
//m_labCurentPage.setText(QString::number(m_currentPage));
}
m_tableWidget.horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//单独使用--每一列宽度平均//Qt::4 //horizontalHeader()->setResizeMode(QHeaderView::Stretch);
m_tableWidget.horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(3, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(4, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(5, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(6, QHeaderView::ResizeToContents);
m_tableWidget.horizontalHeader()->setSectionResizeMode(7, QHeaderView::ResizeToContents);
// m_tableWidget.horizontalHeader()->setSectionResizeMode(8, QHeaderView::ResizeToContents);
m_tableWidget.verticalHeader()->scrollToTop();
m_tableWidget.scrollToTop();
}
void MedicalRecordManager::slotDelete()
{
QStringList CheckNumList;
for (int i = 0; i < m_tableWidget.rowCount(); i++)
{
QTableWidgetItem *item_id = m_tableWidget.item(i, 0);
QTableWidgetItem *item_fileName = m_tableWidget.item(i, 1);
if (item_id->checkState() == Qt::CheckState::Checked)
{
//item_id->setCheckState(Qt::CheckState::Unchecked);
//item_id->setFlags(Qt::ItemIsSelectable);
int id = item_id->data(Qt::DisplayRole).toInt();
QString checkNum = item_fileName->data(Qt::DisplayRole).toString();
CheckNumList.append(checkNum);
bool okret = DataManager::instance().deleteNumRecode(checkNum);
if(!okret)
{
qDebug()<<"fails delete"<<endl;
}
}
}
m_currentPage =0 ;
updateContext();
}

View File

@@ -14,9 +14,10 @@
#include <QDateEdit>
#include <QTableWidget>
#include <QTabWidget>
#include <QHeaderView>
#include <QAction>
#include "datamanager.h"
class MedicalRecordManager:public QWidget
{
Q_OBJECT
@@ -33,6 +34,16 @@ private slots:
des: 搜索
*/
void slotSearch();
//页面跳转
void slotPreviousPage();//上一页update
void slotNextPage(); //下一页
void updateContext();
void slotDelete();
private:
int m_currentPage;
private:
QLabel m_labMedRecManager;
QAction * m_actSearch;

View File

@@ -5,6 +5,8 @@
#include <QFontMetrics>
#include <QDebug>
#include <QGroupBox>
#include "datamanager.h"
#include <QButtonGroup>
MedicalRecordWidget::MedicalRecordWidget(QWidget * parent ):QWidget(parent)
{
init();
@@ -27,83 +29,96 @@ void MedicalRecordWidget::init()
// setFixedSize(600,600);
m_labStar.setText(tr("*"));
m_labStar.setObjectName("labStar");
m_labStar2.setText(tr("*"));
m_labStar.setStyleSheet("color:red");
m_labStar2.setStyleSheet("color:red");
m_labStar2.setObjectName("labStar");
m_dateInspection.setCalendarPopup(true);
m_dateBirthDay.setCalendarPopup(true);
m_dateBirthDay.setDisplayFormat("yyyy-MM-dd");
m_dateInspection.setDisplayFormat("yyyy-MM-dd");
QDateTime currentDateTime = QDateTime::currentDateTime();
QString formattedDateTime = currentDateTime.toString("yyyy-MM-dd");
m_dateInspection.setDateTime(QDateTime::fromString(formattedDateTime, "yyyy-MM-dd"));
m_dateBirthDay.setDateTime(QDateTime::fromString(formattedDateTime, "yyyy-MM-dd"));
#if 1
m_dateBirthDay.setStyleSheet("QDateEdit{ border:1px solid #cccccc;background: #F5F7F9;border-radius: 12px;width: 400px;\
font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #999999;\
height: 60px;padding: 5px 20px;}");
#endif
m_dateInspection.setStyleSheet("QDateEdit{ border:1px solid #cccccc;background: #F5F7F9;border-radius: 12px;width: 400px;\
font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #999999;\
height: 60px;padding: 5px 20px;}");
#if 0
//检查号
m_labCheckNum.setText(tr("CheckNum"));
//住院 hospitalized
m_labType.setText(tr("type"));
m_chHospitalized.setText(tr("hospitalized"));
//门诊
m_chOutpatient.setText(tr("Outpatient"));
//姓名
m_labName.setText(tr("Name"));
//性别
m_labSex.setText(tr("Sex"));;
//左右利
m_labLaterality.setText(tr("Laterality"));
//检查日期
m_labDate_Of_inspection.setText(tr("DateInspection"));
m_labAge.setText(tr("Age"));
m_labBirthDay.setText(tr("birthDay"));
//诊断病历
m_labDiagnosticRecord.setText(tr("Record"));
m_btnOk.setText(tr("ok"));
m_btnCancel.setText(tr("Cancel"));
int iwidth = QFontMetrics(this->font()).width("Laterality");
//m_labCheckNum.setFixedWidth(iwidth);
// m_labName.setFixedWidth(iwidth);
// m_labLaterality.setFixedWidth(iwidth);
//m_labDiagnosticRecord.setFixedWidth(iwidth);
#else
m_gbx.setTitle("病历资料");
m_labTitle.setText("病历资料");
m_labTitle.setStyleSheet("width: 136px;font-family: 思源黑体;color: #0D9DDB; font-size: 32px;font-weight: 500;height: 46px;");
//检查号
m_labCheckNum.setText(tr("查号"));
m_labCheckNum.setText(tr(" 查 号:"));
m_labCheckNum.setObjectName("labCheckNum");
//住院 hospitalized
m_labType.setText(tr(""));
m_chHospitalized.setText(tr("住院"));
m_labType.setText(tr(" 型:"));
m_labType.setObjectName("labCheckNum");
m_chHospitalized.setText(tr("住院:"));
m_chHospitalized.setObjectName("labCheckNum");
//门诊
m_chOutpatient.setText(tr("门诊"));
m_chOutpatient.setObjectName("labCheckNum");
//姓名
m_labName.setText(tr(""));
m_labName.setText(tr(" 名:"));
m_labName.setObjectName("labCheckNum");
//性别
m_labSex.setText(tr(""));;
m_labSex.setText(tr(" 别:"));;
m_labSex.setObjectName("labCheckNum");
m_chMan.setText(tr(""));;
m_chMan.setObjectName("labCheckNum");
m_chWan.setText(tr(""));;
m_chWan.setObjectName("labCheckNum");
QButtonGroup *SexpButtonGroup = new QButtonGroup(this);
// 设置互斥
SexpButtonGroup->setExclusive(true);
SexpButtonGroup->addButton(&m_chMan);
SexpButtonGroup->addButton(&m_chWan);
// bool ok = connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
//左右利
m_labLaterality.setText(tr(" 左右利"));
m_labLaterality.setText(tr("左 右 利:"));
m_labLaterality.setObjectName("labCheckNum");
m_chLeft.setText(tr(""));;
m_chLeft.setObjectName("labCheckNum");
m_chRfight.setText(tr(""));;
m_chRfight.setObjectName("labCheckNum");
QButtonGroup *LabpButtonGroup = new QButtonGroup(this);
// 设置互斥
LabpButtonGroup->setExclusive(true);
LabpButtonGroup->addButton(&m_chLeft);
LabpButtonGroup->addButton(&m_chRfight);
//检查日期
m_labDate_Of_inspection.setText(tr("检查日期"));
m_labAge.setText(tr("年龄"));
m_labBirthDay.setText(tr("出生日期"));
m_labDate_Of_inspection.setText(tr("检查日期:"));
m_labDate_Of_inspection.setObjectName("labCheckNum");
m_labAge.setText(tr("年 龄:"));
m_labAge.setObjectName("labCheckNum");
m_labBirthDay.setText(tr("出生日期:"));
m_labBirthDay.setObjectName("labCheckNum");
//诊断病历
m_labDiagnosticRecord.setText(tr(" 他:"));
m_labDiagnosticRecord.setText(tr("其他信息:"));
m_labDiagnosticRecord.setObjectName("labCheckNum");
m_labDiagnosticRecord.setFixedHeight(30);
m_btnOk.setText(tr("保存"));
m_btnCancel.setText(tr("取消"));
m_btnOk.setObjectName("ok");
m_btnCancel.setObjectName("cancel");
int iwidth = QFontMetrics(this->font()).width("Laterality");
//m_labCheckNum.setFixedWidth(iwidth);
// m_labName.setFixedWidth(iwidth);
// m_labLaterality.setFixedWidth(iwidth);
//m_labDiagnosticRecord.setFixedWidth(iwidth);
#endif
}
void MedicalRecordWidget::initLay()
{
#if 1
#if 0
QHBoxLayout * hlayStart1 = new QHBoxLayout;
hlayStart1->addWidget(&m_labStar);
hlayStart1->addWidget(&m_labCheckNum);
@@ -184,34 +199,247 @@ void MedicalRecordWidget::initLay()
m_chRfight.setFixedWidth(iwidth/2);
#else
QGridLayout * gridlay = new QGridLayout;
int col = 0;
int row = 0;
gridlay->addWidget(&m_labStar,row,col,Qt::AlignRight);
gridlay->addWidget(&m_labCheckNum,row,++col);
gridlay->addWidget(&m_editCheckNum,row,++col);
QVBoxLayout * vlay1 = new QVBoxLayout;
QHBoxLayout * hlayStart1 = new QHBoxLayout;
hlayStart1->addWidget(&m_labStar);
hlayStart1->addWidget(&m_labCheckNum);
vlay1->addLayout(hlayStart1);
QHBoxLayout * hlayStart2 = new QHBoxLayout;
hlayStart2->addWidget(&m_labStar2);
hlayStart2->addWidget(&m_labName);
vlay1->addLayout(hlayStart2);
vlay1->addWidget(&m_labBirthDay);
vlay1->addWidget(&m_labLaterality);
vlay1->addWidget(&m_labDiagnosticRecord);
gridlay->addWidget(&m_labType,row,++col,Qt::AlignRight);
QHBoxLayout * hlay_hostOut = new QHBoxLayout;
hlay_hostOut->addWidget(&m_chHospitalized);
hlay_hostOut->addWidget(&m_chOutpatient);
hlay_hostOut->addStretch();
gridlay->addLayout(hlay_hostOut,row,++col) ;
QVBoxLayout * vlay2 = new QVBoxLayout;
vlay2->addWidget(&m_editCheckNum);
vlay2->addWidget(&m_editName);
vlay2->addWidget(&m_dateBirthDay);
QHBoxLayout * hlay3 = new QHBoxLayout;
hlay3->addWidget(&m_chLeft);
hlay3->addWidget(&m_chRfight);
vlay2->addLayout(hlay3);
row ++;
col = 0;
gridlay->addWidget(&m_labStar2,row,col,Qt::AlignRight);
gridlay->addWidget(&m_labName,row,++col);
gridlay->addWidget(&m_editName,row,++col);
gridlay->addWidget(&m_labSex,row,++col,Qt::AlignRight);
QHBoxLayout * hlay_ManWan = new QHBoxLayout;
hlay_ManWan->addWidget(&m_chMan);
hlay_ManWan->addWidget(&m_chWan);
hlay_ManWan->addStretch();
gridlay->addLayout(hlay_ManWan,row,++col);
row ++;
col = 1;
gridlay->addWidget(&m_labBirthDay,row,col );
gridlay->addWidget(&m_dateBirthDay,row,++col);
gridlay->addWidget(&m_labAge,row,++col,Qt::AlignRight);
gridlay->addWidget(&m_editAge,row,++col);
row ++;
col = 1;
gridlay->addWidget(&m_labLaterality,row,col);
QHBoxLayout * Hlay_leftRight = new QHBoxLayout;
Hlay_leftRight->addWidget(&m_chLeft);
Hlay_leftRight->addWidget(&m_chRfight);
Hlay_leftRight->addStretch();
gridlay->addLayout(Hlay_leftRight,row,++col);
gridlay->addWidget(&m_labDate_Of_inspection,row,++col,Qt::AlignRight);
gridlay->addWidget(&m_dateInspection,row,++col);
row ++;
col = 1;
gridlay->addWidget(&m_labDiagnosticRecord,row,col);
gridlay->addWidget(&m_textDiagnosticRecord,row,++col,3,3);
QHBoxLayout * hlay_title = new QHBoxLayout;
hlay_title->addWidget(&m_labTitle);
QHBoxLayout * hlay_grid = new QHBoxLayout;
//hlay_grid->addSpacing(30);
hlay_grid->addLayout(gridlay);
int iwidth = 30;
gridlay->setContentsMargins(50,30,30,50);
//hlay_grid->addSpacing(30);
QVBoxLayout * vlay = new QVBoxLayout;
vlay->addLayout(hlay_title,1);
vlay->addLayout(hlay_grid,15);
QHBoxLayout * hlay_okCancel = new QHBoxLayout;
hlay_okCancel->addStretch();
hlay_okCancel->addWidget(&m_btnOk);
hlay_okCancel->addWidget(&m_btnCancel);
hlay_okCancel->addStretch();
QWidget * w = new QWidget;
w->setLayout(vlay);
QVBoxLayout * vlayAll = new QVBoxLayout;
vlayAll->addWidget(w);
vlayAll->addLayout(hlay_okCancel);
setLayout(vlayAll);
m_btnOk.setStyleSheet("QPushButton{width: 180px;height: 64px;\
background: white;\
border-radius:12px;padding:7px 10px;\
background: #F5F7F9;\
border-radius: 12px;\
width: 400px;\
font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #999999;\
height: 60px;padding: 5px 20px;\
}\
QPushButton:hover{width: 180px;height: 64px;\
background: #0d9ddb;\
border-radius:12px;padding:7px 10px;\
}\
QPushButton:pressed{width: 180px;height: 64px;\
background: #0d9ddb;\
border-radius:12px;padding:7px 10px;\
}\
QPushButton:checked{width: 180px;height: 64px;\
background: #0d9ddb;\
border-radius:12px;padding:7px 10px;\
}");
m_btnCancel.setStyleSheet("QPushButton{width: 180px;height: 64px;\
background: white;\
border-radius:12px;padding:7px 10px;\
background: #F5F7F9;\
border-radius: 12px;\
width: 400px;\
font-family: Source Han Sans;font-size: 28px;font-weight: normal;color: #999999;\
height: 60px;padding: 5px 20px;\
}\
QPushButton:hover{width: 180px;height: 64px;\
background: #0d9ddb;\
border-radius:12px;padding:7px 10px;\
}\
QPushButton:pressed{width: 180px;height: 64px;\
background: #0d9ddb;\
border-radius:12px;padding:7px 10px;\
}\
QPushButton:checked{width: 180px;height: 64px;\
background: #0d9ddb;\
border-radius:12px;padding:7px 10px;\
}");
#endif
}
bool MedicalRecordWidget::initConnect()
{
bool reok;
reok = connect(&m_btnOk,SIGNAL(clicked()),this,SLOT(slotSave()));
if(!reok)
{
qDebug()<<"save connect failed"<<endl;
}
reok = connect(&m_btnCancel,SIGNAL(clicked()),this,SLOT(slotCancel()));
if(!reok)
{
qDebug()<<"save connect failed"<<endl;
}
}
void MedicalRecordWidget::slotSave()
{
QString CheckNum = m_editCheckNum.text();
//住院 hospitalized
QString Type ;
if(m_chHospitalized.isChecked())
{
Type = m_chHospitalized.text();
}
else
{
Type = m_chOutpatient.text();
}
qDebug()<<Type<<endl;
//姓名
QString Name = m_editName.text();
//性别
QString Sex;
if(m_chMan.isChecked())
{
Sex = m_chMan.text();
}
else
{
Sex = m_chWan.text();
}
//年龄
QString Year = m_editAge.text();
//左右利
QString Laterality;
if(m_chLeft.isChecked())
{
Laterality = m_chLeft.text();
}
else
{
Laterality = m_chRfight.text();
}
//出生日期
QString Birthday = m_dateBirthDay.dateTime().toString("yyyy/MM/dd hh:mm:ss");
//检查日期
QString inspectDate = m_dateInspection.dateTime().toString("yyyy/MM/dd hh:mm:ss");;
//诊断病历
QString Other = m_textDiagnosticRecord.toPlainText();
DataManager::instance().updateMedicRecord(
CheckNum ,
Type ,
Name ,
Sex,
Birthday,
Year,
Laterality,
inspectDate,
Other);
initclear();
}
void MedicalRecordWidget::slotCancel()
{
}
void MedicalRecordWidget::initclear()
{
//检查号
m_editCheckNum.clear();
//住院 hospitalized
m_chHospitalized.setChecked(true);
//姓名
m_editName.clear();
//性别
m_chMan.setChecked(true);
//年龄
m_editAge.clear();
//左右利
m_chLeft.setChecked(true);
//出生日期
m_dateBirthDay.clear();
//检查日期
m_dateInspection.clear();
//诊断病历
m_textDiagnosticRecord.clear();
}

View File

@@ -15,6 +15,8 @@
#include <QDateEdit>
#include <QTextEdit>
#include <QGroupBox>
#include <QRadioButton>
#include <QDateTimeEdit>
class MedicalRecordWidget:public QWidget
{
Q_OBJECT
@@ -24,10 +26,13 @@ public:
void init();
void initLay();
bool initConnect();
void initclear();
private slots:
void slotSave();
void slotCancel();
private:
QGroupBox m_gbx;
QLabel m_labTitle;
QLabel m_labStar;
QLabel m_labStar2;
@@ -37,24 +42,25 @@ private:
//住院 hospitalized
QLabel m_labType;
QCheckBox m_chHospitalized;
QCheckBox m_chOutpatient;
QRadioButton m_chHospitalized;
QRadioButton m_chOutpatient;
//姓名
QLabel m_labName;
QLineEdit m_editName;
//性别
QLabel m_labSex;
QCheckBox m_chMan;
QCheckBox m_chWan;
QRadioButton m_chMan;
QRadioButton m_chWan;
//年龄
QLabel m_labAge;
QLineEdit m_editAge;
//左右利
QLabel m_labLaterality;
QCheckBox m_chLeft;
QCheckBox m_chRfight;
QRadioButton m_chLeft;
QRadioButton m_chRfight;
//出生日期
QLabel m_labBirthDay;
QDateEdit m_dateBirthDay;

View File

@@ -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()
{
@@ -43,7 +46,8 @@ bool NavListWidget::initConnect()
{
QVBoxLayout * vlay = new QVBoxLayout;
QGridLayout * gridlay = new QGridLayout;
// QGridLayout * gridlay = new QGridLayout;
QVBoxLayout * gridlay = new QVBoxLayout;
vlay->addLayout(gridlay);
vlay->addStretch();
setLayout(vlay);
@@ -64,18 +68,22 @@ bool NavListWidget::initConnect()
btn->setObjectName(strlistObjectName.at(i));
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pButtonGroup->addButton(btn);
btn->setFixedSize(QSize(200,60));
btn->setFixedSize(QSize(180,64));
//btn->setFixedSize(m_size);
// btn->setMinimumSize(QSize(200,80));
//btn->setMaximumSize(QSize(200,180));
//btn->setMaximumSize(QSize(80,20));
//btn->setMaximumHeight(50);
btn->setCheckable(true);
gridlay->addWidget( btn);
gridlay->setSpacing(10);
}
gridlay->addStretch();
//#263749
#if 0
setObjectName("NavList");
setStyleSheet("QPushButton{\
background: rgba(51, 71, 75);\
background: rgb(51, 71, 75);\
color: white;\
border-radius: 30px;\
font-size: 16px;\
@@ -95,5 +103,6 @@ border-radius: 30px;\
}"\
"QWidget#NavList{background-color:rgb(47, 61, 82);}"\
);
#endif
}

View File

@@ -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<QPushButton*> m_listBtns;
QSize m_size;
};
#endif // NAVLISTWIDGET_H

View File

@@ -0,0 +1,64 @@
#include "operatorjson.h"
#include <QJsonDocument>
#include <QFile>
#include <QJsonArray>
#include <QJsonObject>
#include <QByteArray>
OperatorJson::OperatorJson(QObject * parent ):QObject (parent)
{
}
OperatorJson::~OperatorJson()
{
}
bool OperatorJson::savaJson(QJsonObject obj, QString sPathFile)
{
{
QJsonDocument doc(obj);
QByteArray data = doc.toJson();
QFile file(sPathFile);//json文件
bool ok = file.open(QIODevice::WriteOnly);
if (ok)
{
file.write(data);
file.close();
}
return ok;
}
}
bool OperatorJson::readJson(QString sPathFile, QJsonObject & json)
{
//读入所有内容
QFile file(sPathFile);
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
file.close();
//解析
QJsonParseError jsonError;
QJsonArray jsonAarray;
QByteArray array(data.toStdString().c_str());
QJsonDocument document = QJsonDocument::fromJson(array, &jsonError);
if (jsonError.error == QJsonParseError::NoError)
{
//logInfo() << array << endl;
//jsonAarray = document.array();
json = document.object();
}
else
{
return false;
}
return true;
}

View File

@@ -0,0 +1,15 @@
#ifndef OPERATORJSON_H
#define OPERATORJSON_H
#include <QObject>
#include <QJsonObject>
class OperatorJson:public QObject
{
Q_OBJECT
public:
OperatorJson(QObject * parent = NULL );
~OperatorJson();
bool savaJson(QJsonObject obj, QString sPathFile);
bool readJson(QString sPathFile, QJsonObject & json);
};
#endif // OPERATORJSON_H

View File

@@ -0,0 +1,283 @@
#include "parametersettingswidget.h"
#include <QButtonGroup>
ParameterSettingsWidget::ParameterSettingsWidget(QWidget *parent )
{
QStringList perHeighFreqstrlist;
perHeighFreqstrlist<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz";
QGridLayout * grid = new QGridLayout;
QSize tempSize(30,30);
QSize tempBtn(180,64);
m_labSettingTxt.setFixedSize(tempBtn);
grid->addWidget(&m_labSettingTxt,0,0,Qt::AlignHCenter);
int row =1;
int col =0;
QHBoxLayout * hlay_HieghtFre = new QHBoxLayout;
QLabel * m_labImageHeighFre= new QLabel;
m_labImageHeighFre->setFixedSize(tempSize);
m_labImageHeighFre->setStyleSheet("border-image:url(:/image/icon_HighFreq.png);}");
QLabel * m_labTxtHeighFre= new QLabel;
m_labTxtHeighFre->setText("高频滤波");
hlay_HieghtFre->addStretch();
hlay_HieghtFre->addWidget(m_labImageHeighFre);
hlay_HieghtFre->addWidget(m_labTxtHeighFre);
hlay_HieghtFre->addStretch();
QWidget * wtemp = new QWidget;
wtemp->setLayout(hlay_HieghtFre);
wtemp->setFixedSize(tempBtn);
//grid->addLayout(hlay_HieghtFre,row++,col,Qt::AlignHCenter);
grid->addWidget(wtemp,row++,col,Qt::AlignHCenter);
QButtonGroup *pButtonGroup = new QButtonGroup;
// 设置互斥
pButtonGroup->setExclusive(true);
// connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
for (int i = 0 ;i < perHeighFreqstrlist.size();i++)
{
QPushButton * btn = new QPushButton;
btn->setText(perHeighFreqstrlist.at(i));
pButtonGroup->addButton(btn);
grid->addWidget(btn,row++,col);
btn->setObjectName(perHeighFreqstrlist.at(i));
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
btn->setFixedSize(tempBtn);
btn->setCheckable(true);
}
//2
row =1;
col++;
QStringList perLowFreqstrlist;
perLowFreqstrlist<<"10Hz"<<"30Hz"<<"50Hz"<<"70Hz"<<"100Hz";
QHBoxLayout * hlay_LowertFre = new QHBoxLayout;
QLabel * m_labImagelowerFre= new QLabel;
m_labImagelowerFre->setStyleSheet("border-image:url(:/image/icon_LowerFreq.png);}");
m_labImagelowerFre->setFixedSize(tempSize);
QLabel * m_labTxtlowerFre= new QLabel;
m_labTxtlowerFre->setText("低频滤波");
hlay_LowertFre->addWidget(m_labImagelowerFre);
hlay_LowertFre->addWidget(m_labTxtlowerFre);
grid->addLayout(hlay_LowertFre,row++,col,Qt::AlignHCenter);
pButtonGroup = new QButtonGroup;
pButtonGroup->setExclusive(true);
// connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
for (int i = 0 ;i < perLowFreqstrlist.size();i++)
{
QPushButton * btn = new QPushButton;
btn->setText(perHeighFreqstrlist.at(i));
pButtonGroup->addButton(btn);
grid->addWidget(btn,row++,col);
btn->setObjectName(perLowFreqstrlist.at(i));
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
btn->setFixedSize(tempBtn);
btn->setCheckable(true);
}
//3
row =1;
col++;
QStringList perTimeConsttrlist;
perTimeConsttrlist<<"0.03Hz"<<"0.1Hz"<<"0.3Hz";
QHBoxLayout * hlay_TimeConst = new QHBoxLayout;
QLabel * m_labImageTimeConst= new QLabel;
m_labImageTimeConst->setStyleSheet("border-image:url(:/image/icon_TimeConst.png);}");
m_labImageTimeConst->setFixedSize(tempSize);
QLabel * m_labTxtTimeConst= new QLabel;
m_labTxtTimeConst->setText("时间常数");
hlay_TimeConst->addWidget(m_labImageTimeConst);
hlay_TimeConst->addWidget(m_labTxtTimeConst);
grid->addLayout(hlay_TimeConst,row++,col,Qt::AlignHCenter);
pButtonGroup = new QButtonGroup;
pButtonGroup->setExclusive(true);
// connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
for (int i = 0 ;i < perTimeConsttrlist.size();i++)
{
QPushButton * btn = new QPushButton;
btn->setText(perHeighFreqstrlist.at(i));
pButtonGroup->addButton(btn);
grid->addWidget(btn,row++,col);
btn->setObjectName(perTimeConsttrlist.at(i));
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
btn->setFixedSize(tempBtn);
btn->setCheckable(true);
}
//4
row =1;
col++;
QStringList PowerFreNotchstrlist;
PowerFreNotchstrlist<<"0.05Hz"<<"0.1Hz"<<"1Hz"<<"2Hz"<<"5Hz";
QHBoxLayout * hlay_PowerFreNotch = new QHBoxLayout;
QLabel * m_labImagePowerFreNotch= new QLabel;
m_labImagePowerFreNotch->setStyleSheet("border-image:url(:/image/icon_PowerFreNotch.png);}");
m_labImagePowerFreNotch->setFixedSize(tempSize);
QLabel * m_labTxtPowerFreNotch= new QLabel;
m_labTxtPowerFreNotch->setText("工作馅波");
hlay_PowerFreNotch->addWidget(m_labImagePowerFreNotch);
hlay_PowerFreNotch->addWidget(m_labTxtPowerFreNotch);
grid->addLayout(hlay_PowerFreNotch,row++,col,Qt::AlignHCenter);
pButtonGroup = new QButtonGroup;
pButtonGroup->setExclusive(true);
//connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
for (int i = 0 ;i < PowerFreNotchstrlist.size();i++)
{
QPushButton * btn = new QPushButton;
btn->setText(PowerFreNotchstrlist.at(i));
pButtonGroup->addButton(btn);
grid->addWidget(btn,row++,col);
btn->setObjectName(PowerFreNotchstrlist.at(i));
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
btn->setFixedSize(tempBtn);
btn->setCheckable(true);
}
//5
row =1;
col++;
QStringList Amplitudestrlist;
Amplitudestrlist<<"1"<<"2"<<"4"<<"8"<<"16"<<"32"<<"64";
QHBoxLayout * hlay_Amplitude = new QHBoxLayout;
QLabel * m_labImageAmplitude= new QLabel;
m_labImageAmplitude->setStyleSheet("border-image:url(:/image/icon_Amplitude.png);}");
m_labImageAmplitude->setFixedSize(tempSize);
QLabel * m_labTxtAmplitude= new QLabel;
m_labTxtAmplitude->setText("波幅");
hlay_Amplitude->addWidget(m_labImageAmplitude);
hlay_Amplitude->addWidget(m_labTxtAmplitude);
grid->addLayout(hlay_Amplitude,row++,col,Qt::AlignHCenter);
pButtonGroup = new QButtonGroup;
pButtonGroup->setExclusive(true);
for (int i = 0 ;i < Amplitudestrlist.size();i++)
{
QPushButton * btn = new QPushButton;
btn->setText(Amplitudestrlist.at(i));
pButtonGroup->addButton(btn);
grid->addWidget(btn,row++,col);
btn->setObjectName(Amplitudestrlist.at(i));
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
btn->setFixedSize(tempBtn);
btn->setCheckable(true);
}
//6
row =1;
col++;
QStringList Wavevelocitystrlist;
Wavevelocitystrlist<<"100"<<"500"<<"1000"<<"2500"<<"5000"<<"10000"<<"15000";
QHBoxLayout * hlay_Wavevelocity = new QHBoxLayout;
QLabel * m_labImageWavevelocity= new QLabel;
m_labImageWavevelocity->setStyleSheet("border-image:url(:/image/icon_Amplitude.png);}");
m_labImageWavevelocity->setFixedSize(tempSize);
QLabel * m_labTxtWavevelocity= new QLabel;
m_labTxtWavevelocity->setText("波速");
hlay_Wavevelocity->addWidget(m_labImageWavevelocity);
hlay_Wavevelocity->addWidget(m_labTxtWavevelocity);
grid->addLayout(hlay_Wavevelocity,row++,col,Qt::AlignHCenter);
pButtonGroup = new QButtonGroup;
pButtonGroup->setExclusive(true);
//connect(pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
for (int i = 0 ;i < Wavevelocitystrlist.size();i++)
{
QPushButton * btn = new QPushButton;
btn->setText(Wavevelocitystrlist.at(i));
pButtonGroup->addButton(btn);
grid->addWidget(btn,row++,col);
btn->setObjectName(Wavevelocitystrlist.at(i));
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
btn->setFixedSize(tempBtn);
btn->setCheckable(true);
}
m_labSettingTxt.setText("参数设置");
m_labSettingTxt.setStyleSheet("font-family: 思源黑体;font-size: 32px;font-weight: 500; color: #0D9DDB;");
//QAction
m_btnOK.setText("保存");
m_btncanCel.setText("取消");
QHBoxLayout * hlay3 = new QHBoxLayout;
hlay3->addStretch();
hlay3->addWidget(&m_btncanCel);
hlay3->addWidget(&m_btnOK);
hlay3->addStretch();
QWidget * w = new QWidget;
w->setObjectName("parasetting");
w->setStyleSheet("QWidget#parasetting{background-color:white;border-radius: 10px;}");
w->setLayout(grid);
QVBoxLayout * vlay = new QVBoxLayout;
vlay->addWidget(w);
vlay->addLayout(hlay3);
setLayout(vlay);
this->setStyleSheet("QLabel{font-family: 思源黑体;font-size: 28px;color: #054578;font-weight: 500;}QPushButton{background-color:white; border-radius:10px; color: #666666;font-family: Source Han Sans; font-size: 30px;font-weight: normal;}\
QPushButton:hover{background: #41B962; border-radius:10px;padding:7px 10px;color: #666666; font-family: Source Han Sans; font-size: 30px;font-weight: normal; }\
QPushButton:pressed{ background: #41B962; border-radius:10px; padding:7px 10px;color: #666666; font-family: Source Han Sans; font-size: 30px;font-weight: normal; }\
QPushButton:checked{background: #41B962;border-radius:10px;padding:7px 10px; color: #666666; font-family: Source Han Sans; font-size: 30px;font-weight: normal;}");
m_btnOK.setStyleSheet("QPushButton{\
background: white;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:hover{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:pressed{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:checked{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}");
m_btncanCel.setStyleSheet("QPushButton{\
background: white;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:hover{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:pressed{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}\
QPushButton:checked{\
background: #0d9ddb;\
border-radius:10px;padding:7px 10px;\
}");
}
ParameterSettingsWidget::~ParameterSettingsWidget()
{
}
void ParameterSettingsWidget::init()
{
}
void ParameterSettingsWidget::initLay()
{
}
bool ParameterSettingsWidget::initConnect()
{
}

View File

@@ -0,0 +1,51 @@
#ifndef PARAMETERSETTINGSWIDGET_H
#define PARAMETERSETTINGSWIDGET_H
#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include "navlistwidget.h"
class ParameterSettingsWidget:public QWidget
{
Q_OBJECT
public:
ParameterSettingsWidget(QWidget *parent = NULL);
virtual ~ParameterSettingsWidget();
void init();
void initLay();
bool initConnect();
private:
//参数设置
QLabel m_labSettingTxt;
QLabel m_labHighFrequencyFiltering;
//低频过滤
QLabel m_labLowerFrequencyFiltering;
//时间常数
QLabel m_labTimeConst;
//工频馅波 Power-frequency notch
QLabel m_labPowerFreNotch;
//波幅
QLabel m_labAmplitude;
//Wave velocity
//波速
QLabel m_labWavevelocity;
QPushButton m_btncanCel;
QPushButton m_btnOK;
};
#endif // PARAMETERSETTINGSWIDGET_H

View File

@@ -0,0 +1,86 @@
QLineEdit
{
border: 1px solid #ABCDA0;
border-radius: 3px;
padding-left: 5px;
background-color: #F2F2F2;
color: #A0A0A0;
selection-background-color: #A0A0A0;
selection-color: #F2F2F2;
font-family: "Microsoft YaHei";
font-size: 10pt;
}
QLineEdit:hover
{
border: 1px solid #298DFF;
border-radius: 3px;
background-color: #F2F2F2;
color: #298DFF;
selection-background-color: #298DFF;
selection-color: #F2F2F2;
}
QLineEdit[echoMode="2"]
{
lineedit-password-character: 9679;
lineedit-password-mask-delay: 2000;
}
QLineEdit:disabled
{
border: 1px solid #CDCDCD;
background-color: #CDCDCD;
color: #B4B4B4;
}
QLineEdit:read-only
{
background-color: #CDCDCD;
color: #F2F2F2;
}
QTextEdit
{
color: black;
background-color: white;
border:1px solid black;
}
QPushButton
{border:1px solid black;}
QGroupBox
{
background-color: #4F4F4F;
border: 1px solid #969696;
color: rgb(13,157,219);
border-radius: 5px;
margin-top: 2ex;
}
QDateEdit
{
border: 1px solid rgb(22,63,23);
color: black;
}
QPushButton
{
background: white;
border-radius:10px;
padding:7px 10px;
}
QPushButton:hover
{
background: #0d9ddb;
border-radius:10px;
padding:7px 10px;
}
QPushButton:pressed
{
background: #0d9aab;
border-radius:10px;
padding:7px 10px;
}
QPushButton:checked
{
background: #0d9ddb;
border-radius:10px;
padding:7px 10px;
};

View File

@@ -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()
@@ -22,28 +22,52 @@ SystemSettingWidget::~SystemSettingWidget()
void SystemSettingWidget::init()
{
//this->setStyleSheet("QWidget{background: rgb(47, 61, 82);border:0px}");
this->setStyleSheet("QWidget{background: rgb(47, 61, 82);}");
m_labDes.setStyleSheet("border-image:url(:/image/systemsetting.png);}");
m_btnRet.setStyleSheet("border-image:url(:/image/icon_back_2.png);}");
m_labDes.setMaximumSize(QSize(200,30));
m_labDes.setMinimumSize(QSize(200,30));
m_btnRet.setMaximumSize(QSize(100,30));
m_btnRet.setMinimumSize(QSize(100,30));
m_labDes.setText("系统设置");
m_btnRet.setText("< 返回");
m_labDes.setStyleSheet("QLabel{width: 330px;height: 58px;font-family:思源黑体;color:#555555;font-size: 40px;font-weight: 500;}");
m_btnRet.setStyleSheet("QPushButton{width: 160px;height: 31px;font-size: 40px; border:0px ; font-weight: normal;color: #666666;font-family: Source Han Sans;}");
m_NavListWidget.setList(QStringList()<<"填写病例"<<"病例管理"<<"导联方案"<<"参数设置"<<"医院信息",
QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter setting" << "hospital-information");
QStringList()<<"fill-in-the-Case" << "case-management" << "leading-scheme" << "Parameter-setting" << "hospital-information");
m_NavListWidget.setStyleSheet("QPushButton{\
background: rgb(51, 71, 75);\
color: white;\
border-radius: 8px;\
border:0px ; \
}\
QPushButton:hover{\
color: black;\
background: rgb(85, 85, 85);\
border-radius: 8px;\
}\
QPushButton:pressed{\
color: black;\
background: rgb(80, 80, 80);\
border-radius: 8px;\
}\
QPushButton:checked{\
color: white;\
background: #0d9ddb;\
border-radius: 8px;\
}"\
"QWidget#NavList1{background-color:rgb(47, 61, 82);}"\
);
}
void SystemSettingWidget::initLay()
{
QHBoxLayout * hlay = new QHBoxLayout;
hlay->addSpacing(35);
//hlay->setContentsMargins(125,34,34,34);
hlay->addWidget(&m_btnRet,1,Qt::AlignLeft);
//hlay->addSpacing(589);
hlay->addWidget(&m_labDes,9, Qt::AlignHCenter);
QWidget * w1 = new QWidget;
w1->setFixedHeight(60);
w1->setStyleSheet("QWidget{background-color:#ffffff;}");
//0
w1->setFixedHeight(80);
w1->setStyleSheet("QWidget{background-color:#ffffff;width: 1920px;height: 100px;}");
w1->setLayout(hlay);
QVBoxLayout * vlay = new QVBoxLayout;
vlay->addWidget(w1,1);
@@ -109,6 +133,27 @@ void SystemSettingWidget::slotClickedChanged()
m_stackedWidget.addWidget(&m_MedicalRecordManagerWidget);
m_stackedWidget.setCurrentWidget(&m_MedicalRecordManagerWidget);
}//Parameter setting
else if(strName.compare("Parameter-setting")==0)
{
m_stackedWidget.addWidget(&m_ParameterSettingsWidget);
m_stackedWidget.setCurrentWidget(&m_ParameterSettingsWidget);
}//hospital-information
else if(strName.compare("hospital-information")==0)
{
m_hospitalinformationWidget.slotUpdateShow();
m_stackedWidget.addWidget(&m_hospitalinformationWidget);
m_stackedWidget.setCurrentWidget(&m_hospitalinformationWidget);
}//m_LeadSchemeWidget
else if(strName.compare("leading-scheme")==0)
{
m_stackedWidget.addWidget(&m_LeadSchemeWidget);
m_stackedWidget.setCurrentWidget(&m_LeadSchemeWidget);
}
}

View File

@@ -11,6 +11,9 @@
#include <QStackedWidget>
#include "medicalrecordwidget.h"
#include "medicalrecordmanager.h"
#include "parametersettingswidget.h"
#include "hospitalinfo.h"
#include "leadscheme.h"
class SystemSettingWidget: public QWidget
{
Q_OBJECT
@@ -46,5 +49,8 @@ private:
MedicalRecordWidget m_MedicalRecordWidget;
MedicalRecordManager m_MedicalRecordManagerWidget;
ParameterSettingsWidget m_ParameterSettingsWidget;
HospitalInfo m_hospitalinformationWidget;
LeadScheme m_LeadSchemeWidget;
};
#endif // SYSTEMSETTINGWIDGET_H

View File

@@ -17,38 +17,32 @@ TitleWidget::~TitleWidget()
void TitleWidget::init()
{
setStyleSheet("QWidget{background-color:#ffffff;}");
m_labDes.setStyleSheet("border-image:url(:/image/sunnyou_logo.png);}");
// m_labSystemName.setStyleSheet("border-image:url(:/image/index_bg_EEG_char.png);}");
//m_labSystemName.setText(tr("Multi-channel wireless EEG acquisition system"));
m_labSystemName.setStyleSheet("border-image:url(:/image/logo_txt.png);}");
m_btnRet.setStyleSheet("background-image:url(:/image/icon_exit.png);}");
setObjectName("title");
m_labDes.setText("Sunnyou 翔宇");
m_labDes.setObjectName("titleDes");
m_btnRet.setObjectName("titleBtn");
m_labSystemName.setObjectName("titleSystemName");
m_labSystemName.setText("Sunlink 多通道无线脑电采集系统");
m_labDes.setFixedSize(QSize(360,59));
m_btnRet.setFixedSize(QSize(89,90));
m_btnRet.setStyleSheet("QPushButton{border-image:url(:/image/icon_exit.png);}"
"QPushButton:hover{border-image:url(:/image/icon_exit_hover.png);}"
"QPushButton:pressed{border-image:url(:/image/icon_exit_checked.png);}"
);
m_labDes.setMaximumSize(QSize(300,40));
m_labSystemName.setFixedSize(QSize(500,40));
m_btnRet.setMaximumSize(QSize(60,60));
m_labDes.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_labSystemName.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_btnRet.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_labDes.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_labSystemName.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_btnRet.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
}
void TitleWidget::initLay()
{
#if 0
#if 1
QHBoxLayout * hlay = new QHBoxLayout;
hlay->addWidget(&m_labDes,Qt::AlignLeft);
hlay->addSpacing(85);
hlay->addWidget(&m_labDes,1,Qt::AlignLeft);
hlay->addWidget(&m_labSystemName,1,Qt::AlignHCenter);
//hlay->addStretch();
hlay->addWidget(&m_btnRet,1,Qt::AlignRight);
hlay->addSpacing(85);
setLayout(hlay);
#else
QGridLayout * hlay = new QGridLayout;

View File

@@ -4,7 +4,8 @@
#
#-------------------------------------------------
QT += core gui
QT += core gui sql
Profile = Release with debug info
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
@@ -25,46 +26,70 @@ DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11
SOURCES += \
MoveButton.cpp \
SqlCore.cpp \
SqlExecute.cpp \
SqlGenerate.cpp \
btngroupwidget.cpp \
cdateedit.cpp \
curchatwidget.cpp \
datamanager.cpp \
dataprocesswidget.cpp \
devconwidget.cpp \
eggwidget.cpp \
framebtn.cpp \
framelesswindow.cpp \
framewindow.cpp \
hospitalinfo.cpp \
leadscheme.cpp \
logger.cpp \
loginwidget.cpp \
main.cpp \
mainbtn.cpp \
mainwindow.cpp \
medicalrecordmanager.cpp \
medicalrecordwidget.cpp \
navlistwidget.cpp \
operatorjson.cpp \
parametersettingswidget.cpp \
regwidget.cpp \
systemsettingwidget.cpp \
titlewidget.cpp \
widget.cpp
HEADERS += \
MoveButton.h \
SqlCore.h \
SqlExecute.h \
SqlGenerate.h \
btngroupwidget.h \
cdateedit.h \
curchatwidget.h \
datamanager.h \
dataprocesswidget.h \
devconwidget.h \
eggwidget.h \
framebtn.h \
framelesswindow.h \
framewindow.h \
hospitalinfo.h \
leadscheme.h \
logger.h \
loginwidget.h \
mainbtn.h \
mainwindow.h \
medicalrecordmanager.h \
medicalrecordwidget.h \
mrmanagement.h \
navlistwidget.h \
operatorjson.h \
parametersettingswidget.h \
regwidget.h \
systemsettingwidget.h \
titlewidget.h \
widget.h
FORMS += \
framebtn.ui \
widget.ui
# Default rules for deployment.
@@ -74,3 +99,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
RESOURCES += \
egg.qrc
DISTFILES += \
qssstyle.qss

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.9.1, 2024-10-31T18:02:10. -->
<!-- Written by QtCreator 4.9.1, 2024-12-09T09:05:51. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
@@ -8,7 +8,7 @@
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">1</value>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
@@ -63,272 +63,11 @@
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.13.0 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.13.0 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5130.win32_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">xyylMCWEACSystem</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">xyylMCWEACSystem2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/gitProject/xyylMCWEACSystem/xyylMCWEACSystem.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.13.0 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.13.0 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5130.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">2</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
@@ -583,6 +322,267 @@
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.13.0 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.13.0 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5130.win32_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/project/qt-project/build-xyylMCWEACSystem-Desktop_Qt_5_13_0_MinGW_32_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">xyylMCWEACSystem</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">xyylMCWEACSystem2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/gitProject/xyylMCWEACSystem/xyylMCWEACSystem.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">2</value>