tcp解析和无线脑电采集
							
								
								
									
										103
									
								
								testNetGUI/datatype.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,103 @@
 | 
			
		||||
#ifndef DATATYPE_H
 | 
			
		||||
#define DATATYPE_H
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QDataStream>
 | 
			
		||||
#include <QByteArray>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
#include <QBuffer>
 | 
			
		||||
#include <QBuffer>
 | 
			
		||||
#include <QDataStream>
 | 
			
		||||
#include <QByteArray>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
 | 
			
		||||
struct DataPacket
 | 
			
		||||
{
 | 
			
		||||
    quint8 frameHeader;       // 帧头 (1 byte)
 | 
			
		||||
    quint32 packetSeq;        // 包序号 (4 bytes)
 | 
			
		||||
    quint16 dataLength;       // 数据块长度 (2 bytes)
 | 
			
		||||
    quint8 batteryLevel;      // 电量 (1 byte)
 | 
			
		||||
    quint8 channelCount;      // 通道数量 (1 byte)
 | 
			
		||||
    qint16 pitchAngle;        // 俯仰角 (2 bytes)
 | 
			
		||||
    qint16 rollAngle;         // 滚动角 (2 bytes)
 | 
			
		||||
    qint16 yawAngle;          // 偏航角 (2 bytes)
 | 
			
		||||
    quint16 ecg;              // 心电 (2 bytes)
 | 
			
		||||
    quint16 spo2;             // 血氧 (2 bytes)
 | 
			
		||||
    quint8 reserved1;         // 预留1 (1 byte)
 | 
			
		||||
    quint8 reserved2;         // 预留2 (1 byte)
 | 
			
		||||
    quint8 reserved3;         // 预留3 (1 byte)
 | 
			
		||||
    quint8 reserved4;         // 预留4 (1 byte)
 | 
			
		||||
 | 
			
		||||
    QByteArray dataBlock;     // 数据块 (192 bytes 或 6 bytes)
 | 
			
		||||
    quint8 syncSource;        // 同步触发源 (1 byte)
 | 
			
		||||
    quint8 syncSeq;           // 同步触发序号 (1 byte)
 | 
			
		||||
    quint8 checksum;          // 校验和 (1 byte)
 | 
			
		||||
    quint16 packetTail;       // 包尾 (2 bytes)
 | 
			
		||||
 | 
			
		||||
    // 序列化头部
 | 
			
		||||
    void serializeHeader(QDataStream &out )
 | 
			
		||||
    {
 | 
			
		||||
        out <<frameHeader <<packetSeq << dataLength << batteryLevel << channelCount
 | 
			
		||||
            << pitchAngle << rollAngle << yawAngle << ecg << spo2
 | 
			
		||||
            << reserved1 << reserved2 << reserved3 << reserved4;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 序列化整个数据包
 | 
			
		||||
    QByteArray serialize()
 | 
			
		||||
    {
 | 
			
		||||
        QByteArray buffer;
 | 
			
		||||
        QBuffer bufferDevice(&buffer);
 | 
			
		||||
        bufferDevice.open(QIODevice::WriteOnly);
 | 
			
		||||
 | 
			
		||||
        QDataStream out(&bufferDevice);
 | 
			
		||||
        out.setVersion(QDataStream::Qt_5_13);
 | 
			
		||||
 | 
			
		||||
        serializeHeader(out); // 序列化头部,但不包括校验和
 | 
			
		||||
        out.writeRawData(dataBlock.data(), dataBlock.size());
 | 
			
		||||
        out << syncSource << syncSeq;
 | 
			
		||||
        out << checksum;
 | 
			
		||||
        out << packetTail;
 | 
			
		||||
        return buffer;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 反序列化整个数据包
 | 
			
		||||
    void deserialize(const QByteArray &buffer) {
 | 
			
		||||
        QBuffer bufferDevice(const_cast<QByteArray*>(&buffer));
 | 
			
		||||
        bufferDevice.open(QIODevice::ReadOnly);
 | 
			
		||||
 | 
			
		||||
        QDataStream in(&bufferDevice);
 | 
			
		||||
        in.setVersion(QDataStream::Qt_5_13);
 | 
			
		||||
 | 
			
		||||
        in >>frameHeader >> packetSeq >> dataLength >> batteryLevel >> channelCount
 | 
			
		||||
           >> pitchAngle >> rollAngle >> yawAngle >> ecg >> spo2
 | 
			
		||||
           >> reserved1 >> reserved2 >> reserved3 >> reserved4;
 | 
			
		||||
 | 
			
		||||
        dataBlock.resize(dataLength);
 | 
			
		||||
        in.readRawData(dataBlock.data(), dataLength);
 | 
			
		||||
 | 
			
		||||
        in >> syncSource >> syncSeq;
 | 
			
		||||
 | 
			
		||||
        in >> checksum;
 | 
			
		||||
 | 
			
		||||
        in >> packetTail;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void  deserializeHeader(const QByteArray &buffer)
 | 
			
		||||
    {
 | 
			
		||||
        QBuffer bufferDevice(const_cast<QByteArray*>(&buffer));
 | 
			
		||||
        bufferDevice.open(QIODevice::ReadOnly);
 | 
			
		||||
 | 
			
		||||
        QDataStream in(&bufferDevice);
 | 
			
		||||
        in.setVersion(QDataStream::Qt_5_13);
 | 
			
		||||
 | 
			
		||||
        in >>frameHeader>> packetSeq >> dataLength >> batteryLevel >> channelCount
 | 
			
		||||
           >> pitchAngle >> rollAngle >> yawAngle >> ecg >> spo2
 | 
			
		||||
           >> reserved1 >> reserved2 >> reserved3 >> reserved4;
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif // DATATYPE_H
 | 
			
		||||
							
								
								
									
										91
									
								
								testNetGUI/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,91 @@
 | 
			
		||||
 | 
			
		||||
#include "widget.h"
 | 
			
		||||
#include <QApplication>
 | 
			
		||||
#include "datatype.h"
 | 
			
		||||
QByteArray createAndSerializeDataPacket() {
 | 
			
		||||
    DataPacket packet;
 | 
			
		||||
    packet.frameHeader = 1;
 | 
			
		||||
    packet.packetSeq = 2;
 | 
			
		||||
    packet.dataLength = 3; // 64通道数据
 | 
			
		||||
    packet.batteryLevel = 4;
 | 
			
		||||
    packet.channelCount = 5;
 | 
			
		||||
    packet.pitchAngle = 6;
 | 
			
		||||
    packet.rollAngle = 7;
 | 
			
		||||
    packet.yawAngle = 8;
 | 
			
		||||
    packet.ecg = 9;
 | 
			
		||||
    packet.spo2 =10;
 | 
			
		||||
    packet.reserved1 = 1;
 | 
			
		||||
    packet.reserved2 = 2;
 | 
			
		||||
    packet.reserved3 = 3;
 | 
			
		||||
    packet.reserved4 = 4;
 | 
			
		||||
 | 
			
		||||
    // 填充数据块
 | 
			
		||||
    for (int i = 0; i < 192; ++i) {
 | 
			
		||||
        packet.dataBlock.append(static_cast<char>(i % 256));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    packet.syncSource = 5;
 | 
			
		||||
    packet.syncSeq = 6;
 | 
			
		||||
    packet.packetTail = 8;
 | 
			
		||||
 | 
			
		||||
    // 序列化数据包
 | 
			
		||||
    QByteArray serializedPacket = packet.serialize();
 | 
			
		||||
    qDebug() << "Serialized Packet (Hex):" << serializedPacket.toHex(' ');
 | 
			
		||||
    return serializedPacket;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#include <QTextCodec>
 | 
			
		||||
int main(int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
    QApplication a(argc, argv);
 | 
			
		||||
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
 | 
			
		||||
    QTextCodec::setCodecForLocale(codec);
 | 
			
		||||
    Widget w;
 | 
			
		||||
    w.show();
 | 
			
		||||
 #if  0
 | 
			
		||||
 | 
			
		||||
    QString data="aa0000b21403ca3d4000000000000000000692000000000000ffed4dffedddffedb6ffed56ffee1fffedadffee5affed90ffedd5ffed3cffee6bffed67ffed86ffedc7ffee1fffedb9ffee11ffedd3ffee1cffedc0ffee2cffed67ffeddfffedeeffedb9ffed5effedf1ffed8affee42ffedd7ffede9ffee43ffed2affed89ffed9bffee28ffed8fffee05ffeda8ffee3affed7cffedfaffed9fffed8cffee0fffedc0ffedb7ffee16ffed89ffedadffedecffee36ffee18ffedfaffee42ffedaaffed59ffedffffede3ffee54ffee0bffed26ffee7fffeeb80000ffed4fffede1ffedb2ffed57ffee1fffeda8ffee5effed8affeddaffed40ffee6bffed71ffed87ffedc7ffee27ffedbcffee13ffedcfffee17ffedbfffee28ffed6cffede0ffede8ffedbaffed5bffede8ffed82ffee48ffeddbffededffee44ffed2dffed88ffed96ffee24ffed8bffedffffedaaffee3cffed82ffedf8ffed9bffed93ffee11ffedbdffedb2ffee1fffed89ffedacffede8ffee36ffee16ffedf7ffee40ffeda4ffed5dffee06ffedd9ffee51ffee0cffed25ffee83ff00000000ffed55ffedddffedb1ffed54ffee22ffedafffee5cffed85ffedd9ffed40ffee72ffed6effed8affedcbffee25ffedbcffee0bffedceffee18ffedc2ffee24ffed6effede6ffededffedbbffed5cffedeeffed85ffee53ffedd6ffedf0ffee4cffed30ffed8cffed96ffee27ffed95ffee01ffedadffee39ffed82ffedf9ffed9dffed94ffee11ffedbdffedb2ffee1fffed87ffedacffede9ffee33ffee1fffedf7ffee40ffeda4ffed57ffee02ffeddeffee4cffee11ffed24ffee0000eebd0000ffed54ffeddcffedb6ffed59ffee1fffedb1ffee58ffed87ffedd4ffed46ffee6dffed70ffed86ffedcfffee22ffedb4ffee0effedd4ffee1cffedc0ffee1effed67ffede5ffedebffedbaffed5affedf2ffed88ffee4dffedd5ffedf0ffee42ffed33ffed8affeda0ffee1bffed93ffee06ffedafffee38ffed7bffedf7ffeda0ffed8fffee0effedbeffedb6ffee1fffed85ffeda8ffedf2ffee33ffee17ffedf4ffee3effeda6ffed5affedf9ffede3ffee4effee0cffed2300007dffeeb80000ffed56ffede1ffedb3ffed55ffee1effedafffee59ffed85ffedd0ffed42ffee69ffed69ffed84ffedc7ffee20ffedb6ffee18ffedcfffee1bffedbfffee25ffed64ffede1ffede9ffedbcffed58ffedf7ffed83ffee4bffedd5ffededffee45ffed2fffed8effed96ffee1affed8dffee08ffedafffee33ffed86ffedf7ffeda2ffed8fffee10ffedbaffedb4ffee1bffed8dffedaaffedf0ffee3bffee15ffedfaffee38ffeda6ffed57ffee02ffede4ffee4effee03ff0000ffee7cffeebe0000005555";
 | 
			
		||||
    DataPacket datapack;
 | 
			
		||||
    datapack.deserialize(QByteArray( data.toStdString().c_str()));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   qDebug()<<"包序号\n :"+QString::number(datapack.packetSeq)<<endl;;
 | 
			
		||||
   qDebug()<<"数据块长度 \n:"+QString::number(datapack.dataLength)<<endl;;;       // 数据块长度 (2 bytes)
 | 
			
		||||
   qDebug()<<"电量\n"+QString::number(datapack.batteryLevel)<<endl;;;      // 电量 (1 byte)
 | 
			
		||||
   qDebug()<<"通道数量\n"+QString::number(datapack.channelCount)<<endl;;;      // 通道数量 (1 byte)
 | 
			
		||||
   qDebug()<<"俯仰角\n"+QString::number(datapack.pitchAngle)<<endl;;;        // 俯仰角 (2 bytes)
 | 
			
		||||
   qDebug()<<"滚动角\n"+QString::number(datapack.rollAngle)<<endl;;;         // 滚动角 (2 bytes)
 | 
			
		||||
   qDebug()<<"偏航角\n"+QString::number(datapack.yawAngle)<<endl;;;          // 偏航角 (2 bytes)
 | 
			
		||||
   qDebug()<<"心电\n"+QString::number(datapack.ecg)<<endl;;;              // 心电 (2 bytes)
 | 
			
		||||
   qDebug()<<"血氧\n"+QString::number(datapack.spo2)<<endl;;;             // 血氧 (2 bytes)
 | 
			
		||||
 | 
			
		||||
   QByteArray  str = createAndSerializeDataPacket();
 | 
			
		||||
   DataPacket packet;
 | 
			
		||||
   packet.deserialize(str);
 | 
			
		||||
   qDebug() << "Deserialization successful"<<str;
 | 
			
		||||
   qDebug() << "Frame Header:" << (int)packet.frameHeader;
 | 
			
		||||
   qDebug() << "Packet Seq:" << packet.packetSeq;
 | 
			
		||||
   qDebug() << "Data Length:" << packet.dataLength;
 | 
			
		||||
   qDebug() << "Battery Level:" << (int)packet.batteryLevel;
 | 
			
		||||
   qDebug() << "Channel Count:" << (int)packet.channelCount;
 | 
			
		||||
   qDebug() << "Pitch Angle:" << packet.pitchAngle;
 | 
			
		||||
   qDebug() << "Roll Angle:" << packet.rollAngle;
 | 
			
		||||
   qDebug() << "Yaw Angle:" << packet.yawAngle;
 | 
			
		||||
   qDebug() << "ECG:" << packet.ecg;
 | 
			
		||||
   qDebug() << "SpO2:" << packet.spo2;
 | 
			
		||||
   qDebug() << "SpO2:" <<packet.reserved1 ;
 | 
			
		||||
  qDebug() << "SpO2:" << packet.reserved2;
 | 
			
		||||
   qDebug() << "SpO2:" <<packet.reserved3 ;
 | 
			
		||||
   qDebug() << "SpO2:" <<packet.reserved4 ;
 | 
			
		||||
 | 
			
		||||
   qDebug() << "Sync Source:" << (int)packet.syncSource;
 | 
			
		||||
   qDebug() << "Sync Seq:" << (int)packet.syncSeq;
 | 
			
		||||
   qDebug() << "Checksum:" << (int)packet.checksum;
 | 
			
		||||
   qDebug() << "Packet Tail:" << packet.packetTail;
 | 
			
		||||
 | 
			
		||||
   // 打印数据块
 | 
			
		||||
   qDebug() << "Data Block:" << packet.dataBlock;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
    return a.exec();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										209
									
								
								testNetGUI/tcpclient.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,209 @@
 | 
			
		||||
#include "tcpclient.h"
 | 
			
		||||
#include <QDataStream>
 | 
			
		||||
#include "datatype.h"
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
TcpClient::TcpClient(QObject * parent):QObject (parent)
 | 
			
		||||
{
 | 
			
		||||
    connect(&m_TcpSocket,SIGNAL(readyRead()),this,SLOT(slotReadMessage()));
 | 
			
		||||
    connect(&m_TcpSocket,SIGNAL(disconnected()),this,SLOT(slotDisconnected()));
 | 
			
		||||
    // 设置接收缓冲区大小
 | 
			
		||||
     int receiveBufferSize = 1024 * 1024; // 1MB
 | 
			
		||||
     m_TcpSocket.setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, receiveBufferSize);
 | 
			
		||||
}
 | 
			
		||||
TcpClient::~TcpClient()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    disConnectServer();
 | 
			
		||||
    m_isConnected = false;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
bool   TcpClient::disConnectServer()
 | 
			
		||||
{
 | 
			
		||||
    if (m_TcpSocket.state() == QAbstractSocket::ConnectedState || m_TcpSocket.state() == QAbstractSocket::ConnectingState)
 | 
			
		||||
    {
 | 
			
		||||
           qDebug() << "Disconnecting from server...";
 | 
			
		||||
           m_TcpSocket.disconnectFromHost();
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
            qDebug() << "Already disconnected or not connected.";
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    m_isConnected = false;
 | 
			
		||||
    qDebug()<<"state"<<m_TcpSocket.state()<<endl;
 | 
			
		||||
    return m_TcpSocket.state() ==  QAbstractSocket::UnconnectedState;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 bool TcpClient::connectServer(QString ip ,qint16 port)
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
     //直接读取状态,如果连接正常,则直接返回
 | 
			
		||||
      if(m_TcpSocket.state()== QAbstractSocket::ConnectedState)
 | 
			
		||||
       {
 | 
			
		||||
            if(m_TcpSocket.isValid())
 | 
			
		||||
            {
 | 
			
		||||
                m_isConnected = true;
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                m_isConnected = false;
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
       //尝试连接
 | 
			
		||||
       m_TcpSocket.abort();//取消原有连接
 | 
			
		||||
       m_TcpSocket.connectToHost(ip,port);
 | 
			
		||||
        if(m_TcpSocket.waitForConnected(1000))
 | 
			
		||||
        {
 | 
			
		||||
            m_isConnected = true;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
             m_isConnected = false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return m_isConnected;
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool TcpClient::sendMessage(QByteArray & data)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    if(!m_isConnected)
 | 
			
		||||
    {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    //分包发送
 | 
			
		||||
    const int PayloadSize = 64*1024;//一个帧数据包大小
 | 
			
		||||
    int totalSize = data.size();
 | 
			
		||||
    int bytesWritten = 0;
 | 
			
		||||
    int bytesToWrite = totalSize;
 | 
			
		||||
    while(bytesWritten<totalSize)
 | 
			
		||||
    {
 | 
			
		||||
        int startIdx = bytesWritten;
 | 
			
		||||
        int length = std::min(PayloadSize,bytesToWrite);
 | 
			
		||||
        if(startIdx+length>totalSize)
 | 
			
		||||
            return false;
 | 
			
		||||
 | 
			
		||||
        QByteArray smallBlock = data.mid(startIdx,length);
 | 
			
		||||
        qint64 written = m_TcpSocket.write(smallBlock);
 | 
			
		||||
        bool success = m_TcpSocket.waitForBytesWritten();
 | 
			
		||||
 | 
			
		||||
        if(!success)//发送失败包时,停止发送
 | 
			
		||||
        {
 | 
			
		||||
               return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        bytesWritten+=written;
 | 
			
		||||
        bytesToWrite-=written;
 | 
			
		||||
    }
 | 
			
		||||
    m_TcpSocket.flush();
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 QByteArray TcpClient::GetData()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
    return QByteArray();
 | 
			
		||||
 }
 | 
			
		||||
 void   TcpClient::slotTestReadMessage()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
     QByteArray temp_BtyeArray = m_TcpSocket.readAll();
 | 
			
		||||
     m_msgArray.append(temp_BtyeArray );
 | 
			
		||||
     //数据头大小为23个字节
 | 
			
		||||
     //数据块长度192或者6
 | 
			
		||||
     //剩余部分5
 | 
			
		||||
     while(!m_msgArray.isEmpty())
 | 
			
		||||
     {
 | 
			
		||||
             qint32 allSize = m_msgArray.size();
 | 
			
		||||
             //数据头不够
 | 
			
		||||
             if (allSize < 23)
 | 
			
		||||
             {
 | 
			
		||||
                 qDebug()<<"sizeRcre"<<temp_BtyeArray<<endl;
 | 
			
		||||
                 return;
 | 
			
		||||
             }
 | 
			
		||||
             DataPacket dataRec;
 | 
			
		||||
             dataRec.deserializeHeader(m_msgArray);
 | 
			
		||||
             //数据总数不够
 | 
			
		||||
             qint32 dataLength = dataRec.dataLength+23+5;
 | 
			
		||||
             if(dataRec.dataLength+23+5 >allSize )
 | 
			
		||||
             {
 | 
			
		||||
                 qDebug()<<"datalength:"<<dataRec.dataLength<<temp_BtyeArray<<endl;
 | 
			
		||||
                 return ;
 | 
			
		||||
             }
 | 
			
		||||
             dataRec.deserialize(m_msgArray);
 | 
			
		||||
             QByteArray readContent = m_msgArray.left(dataLength);
 | 
			
		||||
             m_msgArray.remove(0, dataLength);
 | 
			
		||||
             emit  SigRectMsg(readContent);
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 void  TcpClient::slotReadMessage()
 | 
			
		||||
 {
 | 
			
		||||
       qDebug()<<m_msgArray.size()<<endl;
 | 
			
		||||
     QByteArray temp_BtyeArray = m_TcpSocket.readAll();
 | 
			
		||||
     qDebug()<<temp_BtyeArray<<endl;
 | 
			
		||||
     qDebug()<<temp_BtyeArray.size()<<endl;
 | 
			
		||||
     m_msgArray.append(temp_BtyeArray );
 | 
			
		||||
     quint8 frameHeader;       // 帧头 (1 byte)
 | 
			
		||||
     quint32 packetSeq;        // 包序号 (4 bytes)
 | 
			
		||||
     quint16 dataLength;       // 数据块长度 (2 bytes)
 | 
			
		||||
     quint8 batteryLevel;      // 电量 (1 byte)
 | 
			
		||||
     quint8 channelCount;      // 通道数量 (1 byte)
 | 
			
		||||
     qint16 pitchAngle;        // 俯仰角 (2 bytes)
 | 
			
		||||
     qint16 rollAngle;         // 滚动角 (2 bytes)
 | 
			
		||||
     qint16 yawAngle;          // 偏航角 (2 bytes)
 | 
			
		||||
     quint16 ecg;              // 心电 (2 bytes)
 | 
			
		||||
     quint16 spo2;             // 血氧 (2 bytes)
 | 
			
		||||
     quint8 reserved1;         // 预留1 (1 byte)
 | 
			
		||||
     quint8 reserved2;         // 预留2 (1 byte)
 | 
			
		||||
     quint8 reserved3;         // 预留3 (1 byte)
 | 
			
		||||
     quint8 reserved4;         // 预留4 (1 byte)
 | 
			
		||||
 | 
			
		||||
     QByteArray dataBlock;     // 数据块 (192 bytes 或 6 bytes)
 | 
			
		||||
     quint8 syncSource;        // 同步触发源 (1 byte)
 | 
			
		||||
     quint8 syncSeq;           // 同步触发序号 (1 byte)
 | 
			
		||||
     quint8 checksum;          // 校验和 (1 byte)
 | 
			
		||||
     quint16 packetTail;       // 包尾 (2 bytes)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     QDataStream in(m_msgArray);
 | 
			
		||||
            in.setVersion(QDataStream::Qt_5_13);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     in >>frameHeader>>frameHeader >> packetSeq >> dataLength >> batteryLevel >> channelCount
 | 
			
		||||
        >> pitchAngle >> rollAngle >> yawAngle >> ecg >> spo2
 | 
			
		||||
        >> reserved1 >> reserved2 >> reserved3 >> reserved4;
 | 
			
		||||
    qDebug()<<"---:"<<dataLength<<endl;
 | 
			
		||||
     dataBlock.resize(dataLength);
 | 
			
		||||
     in.readRawData(dataBlock.data(), dataLength);
 | 
			
		||||
 | 
			
		||||
     in >> syncSource >> syncSeq;
 | 
			
		||||
 | 
			
		||||
     in >> checksum;
 | 
			
		||||
 | 
			
		||||
     in >> packetTail;
 | 
			
		||||
     qDebug()<<"getdataLength:"<<dataLength<<endl;
 | 
			
		||||
      m_msgArray.remove(0, dataLength+23+5);
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 void  TcpClient::slotDisconnected()
 | 
			
		||||
 {
 | 
			
		||||
        disConnectServer();
 | 
			
		||||
 }
 | 
			
		||||
 void TcpClient::slotSendMessage(QByteArray & data)
 | 
			
		||||
 {
 | 
			
		||||
     sendMessage(data);
 | 
			
		||||
 }
 | 
			
		||||
							
								
								
									
										208
									
								
								testNetGUI/tcpclient.cpp.autosave
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,208 @@
 | 
			
		||||
#include "tcpclient.h"
 | 
			
		||||
#include <QDataStream>
 | 
			
		||||
#include "datatype.h"
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
TcpClient::TcpClient(QObject * parent):QObject (parent)
 | 
			
		||||
{
 | 
			
		||||
    connect(&m_TcpSocket,SIGNAL(readyRead()),this,SLOT(slotReadMessage()));
 | 
			
		||||
    connect(&m_TcpSocket,SIGNAL(disconnected()),this,SLOT(slotDisconnected()));
 | 
			
		||||
    // 设置接收缓冲区大小
 | 
			
		||||
     int receiveBufferSize = 1024 * 1024; // 1MB
 | 
			
		||||
     m_TcpSocket.setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, receiveBufferSize);
 | 
			
		||||
}
 | 
			
		||||
TcpClient::~TcpClient()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    disConnectServer();
 | 
			
		||||
    m_isConnected = false;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
bool   TcpClient::disConnectServer()
 | 
			
		||||
{
 | 
			
		||||
    if (m_TcpSocket.state() == QAbstractSocket::ConnectedState || m_TcpSocket.state() == QAbstractSocket::ConnectingState)
 | 
			
		||||
    {
 | 
			
		||||
           qDebug() << "Disconnecting from server...";
 | 
			
		||||
           m_TcpSocket.disconnectFromHost();
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
            qDebug() << "Already disconnected or not connected.";
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    m_isConnected = false;
 | 
			
		||||
    qDebug()<<"state"<<m_TcpSocket.state()<<endl;
 | 
			
		||||
    return m_TcpSocket.state() ==  QAbstractSocket::UnconnectedState;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 bool TcpClient::connectServer(QString ip ,qint16 port)
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
     //直接读取状态,如果连接正常,则直接返回
 | 
			
		||||
      if(m_TcpSocket.state()== QAbstractSocket::ConnectedState)
 | 
			
		||||
       {
 | 
			
		||||
            if(m_TcpSocket.isValid())
 | 
			
		||||
            {
 | 
			
		||||
                m_isConnected = true;
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                m_isConnected = false;
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
       //尝试连接
 | 
			
		||||
       m_TcpSocket.abort();//取消原有连接
 | 
			
		||||
       m_TcpSocket.connectToHost(ip,port);
 | 
			
		||||
        if(m_TcpSocket.waitForConnected(1000))
 | 
			
		||||
        {
 | 
			
		||||
            m_isConnected = true;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
             m_isConnected = false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return m_isConnected;
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool TcpClient::sendMessage(QByteArray & data)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    if(!m_isConnected)
 | 
			
		||||
    {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    //分包发送
 | 
			
		||||
    const int PayloadSize = 64*1024;//一个帧数据包大小
 | 
			
		||||
    int totalSize = data.size();
 | 
			
		||||
    int bytesWritten = 0;
 | 
			
		||||
    int bytesToWrite = totalSize;
 | 
			
		||||
    while(bytesWritten<totalSize)
 | 
			
		||||
    {
 | 
			
		||||
        int startIdx = bytesWritten;
 | 
			
		||||
        int length = std::min(PayloadSize,bytesToWrite);
 | 
			
		||||
        if(startIdx+length>totalSize)
 | 
			
		||||
            return false;
 | 
			
		||||
 | 
			
		||||
        QByteArray smallBlock = data.mid(startIdx,length);
 | 
			
		||||
        qint64 written = m_TcpSocket.write(smallBlock);
 | 
			
		||||
        bool success = m_TcpSocket.waitForBytesWritten();
 | 
			
		||||
 | 
			
		||||
        if(!success)//发送失败包时,停止发送
 | 
			
		||||
        {
 | 
			
		||||
               return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        bytesWritten+=written;
 | 
			
		||||
        bytesToWrite-=written;
 | 
			
		||||
    }
 | 
			
		||||
    m_TcpSocket.flush();
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 QByteArray TcpClient::GetData()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
    return QByteArray();
 | 
			
		||||
 }
 | 
			
		||||
 void   TcpClient::slotTestReadMessage()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
     QByteArray temp_BtyeArray = m_TcpSocket.readAll();
 | 
			
		||||
     m_msgArray.append(temp_BtyeArray );
 | 
			
		||||
     //数据头大小为23个字节
 | 
			
		||||
     //数据块长度192或者6
 | 
			
		||||
     //剩余部分5
 | 
			
		||||
     while(!m_msgArray.isEmpty())
 | 
			
		||||
     {
 | 
			
		||||
             qint32 allSize = m_msgArray.size();
 | 
			
		||||
             //数据头不够
 | 
			
		||||
             if (allSize < 23)
 | 
			
		||||
             {
 | 
			
		||||
                 qDebug()<<"sizeRcre"<<temp_BtyeArray<<endl;
 | 
			
		||||
                 return;
 | 
			
		||||
             }
 | 
			
		||||
             DataPacket dataRec;
 | 
			
		||||
             dataRec.deserializeHeader(m_msgArray);
 | 
			
		||||
             //数据总数不够
 | 
			
		||||
             qint32 dataLength = dataRec.dataLength+23+5;
 | 
			
		||||
             if(dataRec.dataLength+23+5 >allSize )
 | 
			
		||||
             {
 | 
			
		||||
                 qDebug()<<"datalength:"<<dataRec.dataLength<<temp_BtyeArray<<endl;
 | 
			
		||||
                 return ;
 | 
			
		||||
             }
 | 
			
		||||
             dataRec.deserialize(m_msgArray);
 | 
			
		||||
             QByteArray readContent = m_msgArray.left(dataLength);
 | 
			
		||||
             m_msgArray.remove(0, dataLength);
 | 
			
		||||
             emit  SigRectMsg(readContent);
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 void  TcpClient::slotReadMessage()
 | 
			
		||||
 {
 | 
			
		||||
       qDebug()<<m_msgArray.size()<<endl;
 | 
			
		||||
     QByteArray temp_BtyeArray = m_TcpSocket.readAll();
 | 
			
		||||
     qDebug()<<temp_BtyeArray.size()<<endl;
 | 
			
		||||
     m_msgArray.append(temp_BtyeArray );
 | 
			
		||||
     quint8 frameHeader;       // 帧头 (1 byte)
 | 
			
		||||
     quint32 packetSeq;        // 包序号 (4 bytes)
 | 
			
		||||
     quint16 dataLength;       // 数据块长度 (2 bytes)
 | 
			
		||||
     quint8 batteryLevel;      // 电量 (1 byte)
 | 
			
		||||
     quint8 channelCount;      // 通道数量 (1 byte)
 | 
			
		||||
     qint16 pitchAngle;        // 俯仰角 (2 bytes)
 | 
			
		||||
     qint16 rollAngle;         // 滚动角 (2 bytes)
 | 
			
		||||
     qint16 yawAngle;          // 偏航角 (2 bytes)
 | 
			
		||||
     quint16 ecg;              // 心电 (2 bytes)
 | 
			
		||||
     quint16 spo2;             // 血氧 (2 bytes)
 | 
			
		||||
     quint8 reserved1;         // 预留1 (1 byte)
 | 
			
		||||
     quint8 reserved2;         // 预留2 (1 byte)
 | 
			
		||||
     quint8 reserved3;         // 预留3 (1 byte)
 | 
			
		||||
     quint8 reserved4;         // 预留4 (1 byte)
 | 
			
		||||
 | 
			
		||||
     QByteArray dataBlock;     // 数据块 (192 bytes 或 6 bytes)
 | 
			
		||||
     quint8 syncSource;        // 同步触发源 (1 byte)
 | 
			
		||||
     quint8 syncSeq;           // 同步触发序号 (1 byte)
 | 
			
		||||
     quint8 checksum;          // 校验和 (1 byte)
 | 
			
		||||
     quint16 packetTail;       // 包尾 (2 bytes)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     QDataStream in(m_msgArray);
 | 
			
		||||
            in.setVersion(QDataStream::Qt_5_13);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     in >>frameHeader>>frameHeader >> packetSeq >> dataLength >> batteryLevel >> channelCount
 | 
			
		||||
        >> pitchAngle >> rollAngle >> yawAngle >> ecg >> spo2
 | 
			
		||||
        >> reserved1 >> reserved2 >> reserved3 >> reserved4;
 | 
			
		||||
    qDebug()<<"---:"<<dataLength<<endl;
 | 
			
		||||
     dataBlock.resize(dataLength);
 | 
			
		||||
     in.readRawData(dataBlock.data(), dataLength);
 | 
			
		||||
 | 
			
		||||
     in >> syncSource >> syncSeq;
 | 
			
		||||
 | 
			
		||||
     in >> checksum;
 | 
			
		||||
 | 
			
		||||
     in >> packetTail;
 | 
			
		||||
     qDebug()<<"getdataLength:"<<dataLength<<endl;
 | 
			
		||||
      m_msgArray.remove(0, dataLength+23+5);
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 void  TcpClient::slotDisconnected()
 | 
			
		||||
 {
 | 
			
		||||
        disConnectServer();
 | 
			
		||||
 }
 | 
			
		||||
 void TcpClient::slotSendMessage(QByteArray & data)
 | 
			
		||||
 {
 | 
			
		||||
     sendMessage(data);
 | 
			
		||||
 }
 | 
			
		||||
							
								
								
									
										41
									
								
								testNetGUI/tcpclient.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,41 @@
 | 
			
		||||
#ifndef TCPCLIENT_H
 | 
			
		||||
#define TCPCLIENT_H
 | 
			
		||||
#include <QTcpSocket>
 | 
			
		||||
#include <QByteArray>
 | 
			
		||||
#include <QObject>
 | 
			
		||||
class   TcpClient:public QObject
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    TcpClient(QObject * parent = nullptr);
 | 
			
		||||
    virtual  ~TcpClient();
 | 
			
		||||
    /*
 | 
			
		||||
        des: 连接服务端
 | 
			
		||||
    */
 | 
			
		||||
    bool connectServer(QString ip ,qint16 port);
 | 
			
		||||
    /*
 | 
			
		||||
        des: 获取数据
 | 
			
		||||
    */
 | 
			
		||||
    QByteArray GetData();
 | 
			
		||||
 | 
			
		||||
    bool sendMessage(QByteArray & data);
 | 
			
		||||
    /*
 | 
			
		||||
        des: 断开连接
 | 
			
		||||
    */
 | 
			
		||||
    bool   disConnectServer();
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
    void SigRectMsg(QByteArray & dataPack);
 | 
			
		||||
private slots:
 | 
			
		||||
 | 
			
		||||
    void  slotReadMessage();
 | 
			
		||||
    void  slotTestReadMessage();
 | 
			
		||||
    void  slotDisconnected();
 | 
			
		||||
    void  slotSendMessage(QByteArray & data);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    QTcpSocket  m_TcpSocket;
 | 
			
		||||
    bool  m_isConnected;
 | 
			
		||||
    QByteArray m_msgArray;
 | 
			
		||||
};
 | 
			
		||||
#endif // TCPCLIENT_H
 | 
			
		||||
							
								
								
									
										43
									
								
								testNetGUI/testNetGUI.pro
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,43 @@
 | 
			
		||||
#-------------------------------------------------
 | 
			
		||||
#
 | 
			
		||||
# Project created by QtCreator 2024-10-17T16:31:11
 | 
			
		||||
#
 | 
			
		||||
#-------------------------------------------------
 | 
			
		||||
 | 
			
		||||
QT       += core gui  network
 | 
			
		||||
 | 
			
		||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 | 
			
		||||
 | 
			
		||||
TARGET = testNetGUI
 | 
			
		||||
TEMPLATE = app
 | 
			
		||||
 | 
			
		||||
# The following define makes your compiler emit warnings if you use
 | 
			
		||||
# any feature of Qt which has been marked as deprecated (the exact warnings
 | 
			
		||||
# depend on your compiler). Please consult the documentation of the
 | 
			
		||||
# deprecated API in order to know how to port your code away from it.
 | 
			
		||||
DEFINES += QT_DEPRECATED_WARNINGS
 | 
			
		||||
 | 
			
		||||
# You can also make your code fail to compile if you use deprecated APIs.
 | 
			
		||||
# In order to do so, uncomment the following line.
 | 
			
		||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
 | 
			
		||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 | 
			
		||||
 | 
			
		||||
CONFIG += c++11
 | 
			
		||||
 | 
			
		||||
SOURCES += \
 | 
			
		||||
        main.cpp \
 | 
			
		||||
        tcpclient.cpp \
 | 
			
		||||
        widget.cpp
 | 
			
		||||
 | 
			
		||||
HEADERS += \
 | 
			
		||||
        datatype.h \
 | 
			
		||||
        tcpclient.h \
 | 
			
		||||
        widget.h
 | 
			
		||||
 | 
			
		||||
FORMS += \
 | 
			
		||||
        widget.ui
 | 
			
		||||
 | 
			
		||||
# Default rules for deployment.
 | 
			
		||||
qnx: target.path = /tmp/$${TARGET}/bin
 | 
			
		||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
 | 
			
		||||
!isEmpty(target.path): INSTALLS += target
 | 
			
		||||
							
								
								
									
										598
									
								
								testNetGUI/testNetGUI.pro.user
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,598 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE QtCreatorProject>
 | 
			
		||||
<!-- Written by QtCreator 4.9.1, 2024-10-21T17:49:15. -->
 | 
			
		||||
<qtcreator>
 | 
			
		||||
 <data>
 | 
			
		||||
  <variable>EnvironmentId</variable>
 | 
			
		||||
  <value type="QByteArray">{91b91540-c58e-40b1-bd6c-1f09b812885d}</value>
 | 
			
		||||
 </data>
 | 
			
		||||
 <data>
 | 
			
		||||
  <variable>ProjectExplorer.Project.ActiveTarget</variable>
 | 
			
		||||
  <value type="int">0</value>
 | 
			
		||||
 </data>
 | 
			
		||||
 <data>
 | 
			
		||||
  <variable>ProjectExplorer.Project.EditorSettings</variable>
 | 
			
		||||
  <valuemap type="QVariantMap">
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
 | 
			
		||||
   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
 | 
			
		||||
    <value type="QString" key="language">Cpp</value>
 | 
			
		||||
    <valuemap type="QVariantMap" key="value">
 | 
			
		||||
     <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
 | 
			
		||||
    </valuemap>
 | 
			
		||||
   </valuemap>
 | 
			
		||||
   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
 | 
			
		||||
    <value type="QString" key="language">QmlJS</value>
 | 
			
		||||
    <valuemap type="QVariantMap" key="value">
 | 
			
		||||
     <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
 | 
			
		||||
    </valuemap>
 | 
			
		||||
   </valuemap>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
 | 
			
		||||
   <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.IndentSize">4</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.MarginColumn">80</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.PaddingMode">1</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.TabSize">8</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
 | 
			
		||||
   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
 | 
			
		||||
   <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
 | 
			
		||||
  </valuemap>
 | 
			
		||||
 </data>
 | 
			
		||||
 <data>
 | 
			
		||||
  <variable>ProjectExplorer.Project.PluginSettings</variable>
 | 
			
		||||
  <valuemap type="QVariantMap">
 | 
			
		||||
   <valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
 | 
			
		||||
    <value type="QString">-fno-delayed-template-parsing</value>
 | 
			
		||||
   </valuelist>
 | 
			
		||||
   <value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
 | 
			
		||||
  </valuemap>
 | 
			
		||||
 </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">0</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-testNetGUI-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-testNetGUI-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-testNetGUI-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">testNetGUI</value>
 | 
			
		||||
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
 | 
			
		||||
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/project/qt-project/testNetGUI/testNetGUI.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-testNetGUI-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">0</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-testNetGUI-Desktop_Qt_5_13_0_MinGW_64_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-testNetGUI-Desktop_Qt_5_13_0_MinGW_64_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-testNetGUI-Desktop_Qt_5_13_0_MinGW_64_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.CustomExecutableRunConfiguration.Executable"></value>
 | 
			
		||||
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
 | 
			
		||||
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
 | 
			
		||||
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</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.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>
 | 
			
		||||
 </data>
 | 
			
		||||
 <data>
 | 
			
		||||
  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
 | 
			
		||||
  <value type="int">21</value>
 | 
			
		||||
 </data>
 | 
			
		||||
 <data>
 | 
			
		||||
  <variable>Version</variable>
 | 
			
		||||
  <value type="int">21</value>
 | 
			
		||||
 </data>
 | 
			
		||||
</qtcreator>
 | 
			
		||||
							
								
								
									
										84
									
								
								testNetGUI/widget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,84 @@
 | 
			
		||||
//#pragma execution_character_set("utf-8")
 | 
			
		||||
#include "widget.h"
 | 
			
		||||
#include "ui_widget.h"
 | 
			
		||||
#include <QMessageBox>
 | 
			
		||||
Widget::Widget(QWidget *parent) :
 | 
			
		||||
    QWidget(parent),
 | 
			
		||||
    ui(new Ui::Widget)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    connect(ui->btnConn,SIGNAL(clicked()),this,SLOT(slotConnect()));
 | 
			
		||||
    connect(ui->btnDis,SIGNAL(clicked()),this,SLOT(slotDisCon()));
 | 
			
		||||
     connect(&m_TcpClent,SIGNAL(SigRectMsg(QByteArray & )),this,SLOT(slotRec(QByteArray &)));
 | 
			
		||||
     ui->editIp->setText("192.168.1.11");
 | 
			
		||||
     ui->spnPort->setRange(1,1000000);
 | 
			
		||||
      ui->spnPort->setValue(5086);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Widget::~Widget()
 | 
			
		||||
{
 | 
			
		||||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Widget::slotConnect()
 | 
			
		||||
{
 | 
			
		||||
    QString  sIP = ui->editIp->text();
 | 
			
		||||
    int port    = ui->spnPort->value();
 | 
			
		||||
    if( m_TcpClent.connectServer(sIP,port))
 | 
			
		||||
    {
 | 
			
		||||
         QMessageBox::information(this,"succeed"," succeed");
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        QMessageBox::warning(this,"failed"," failed");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void Widget::slotDisCon()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    if( m_TcpClent.disConnectServer())
 | 
			
		||||
    {
 | 
			
		||||
         QMessageBox::information(this,"succeed"," succeed");
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        QMessageBox::warning(this,"failed"," failed");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
void Widget::slotSend()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void Widget::slotRec(QByteArray & data)
 | 
			
		||||
{
 | 
			
		||||
    qDebug()<<"data---"<<data<<endl;
 | 
			
		||||
    DataPacket datapack;
 | 
			
		||||
    datapack.deserialize(data);
 | 
			
		||||
#if  0
 | 
			
		||||
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("包序号:")+QString::number(datapack.packetSeq)<<endl;;
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("数据块长度 :")+QString::number(datapack.dataLength)<<endl;;;       // 数据块长度 (2 bytes)
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("电量:")+QString::number(datapack.batteryLevel)<<endl;;;      // 电量 (1 byte)
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("通道数量:")+QString::number(datapack.channelCount)<<endl;;;      // 通道数量 (1 byte)
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("俯仰角:")+QString::number(datapack.pitchAngle)<<endl;;;        // 俯仰角 (2 bytes)
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("滚动角:")+QString::number(datapack.rollAngle)<<endl;;;         // 滚动角 (2 bytes)
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("偏航角:")+QString::number(datapack.yawAngle)<<endl;;;          // 偏航角 (2 bytes)
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("心电:")+QString::number(datapack.ecg)<<endl;;;              // 心电 (2 bytes)
 | 
			
		||||
   qDebug()<<QString::fromLocal8Bit("血氧:")+QString::number(datapack.spo2)<<endl;;;             // 血氧 (2 bytes)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    qDebug()<<"packetSeq :"+QString::number(datapack.packetSeq)<<endl;;
 | 
			
		||||
    qDebug()<<"dataLength:"+QString::number(datapack.dataLength)<<endl;;;       // 数据块长度 (2 bytes)
 | 
			
		||||
    qDebug()<<"batteryLevel"+QString::number(datapack.batteryLevel)<<endl;;;      // 电量 (1 byte)
 | 
			
		||||
    qDebug()<<"channelCount"+QString::number(datapack.channelCount)<<endl;;;      // 通道数量 (1 byte)
 | 
			
		||||
    qDebug()<<"pitchAngle"+QString::number(datapack.pitchAngle)<<endl;;;        // 俯仰角 (2 bytes)
 | 
			
		||||
    qDebug()<<"rollAngle"+QString::number(datapack.rollAngle)<<endl;;;         // 滚动角 (2 bytes)
 | 
			
		||||
    qDebug()<<"yawAngle"+QString::number(datapack.yawAngle)<<endl;;;          // 偏航角 (2 bytes)
 | 
			
		||||
    qDebug()<<"ecg"+QString::number(datapack.ecg)<<endl;;;              // 心电 (2 bytes)
 | 
			
		||||
    qDebug()<<"spo2"+QString::number(datapack.spo2)<<endl;;;             // 血氧 (2 bytes)
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								testNetGUI/widget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,28 @@
 | 
			
		||||
#ifndef WIDGET_H
 | 
			
		||||
#define WIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include "datatype.h"
 | 
			
		||||
#include "tcpclient.h"
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class Widget;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Widget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit Widget(QWidget *parent = nullptr);
 | 
			
		||||
    ~Widget();
 | 
			
		||||
private slots:
 | 
			
		||||
        void slotConnect();
 | 
			
		||||
        void slotDisCon();
 | 
			
		||||
        void slotSend();
 | 
			
		||||
        void slotRec(QByteArray &);
 | 
			
		||||
private:
 | 
			
		||||
    Ui::Widget *ui;
 | 
			
		||||
    TcpClient m_TcpClent;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // WIDGET_H
 | 
			
		||||
							
								
								
									
										66
									
								
								testNetGUI/widget.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,66 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>Widget</class>
 | 
			
		||||
 <widget class="QWidget" name="Widget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>852</width>
 | 
			
		||||
    <height>427</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Widget</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <widget class="QPushButton" name="btnConn">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>380</x>
 | 
			
		||||
     <y>60</y>
 | 
			
		||||
     <width>93</width>
 | 
			
		||||
     <height>28</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>连接</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QPushButton" name="btnDis">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>520</x>
 | 
			
		||||
     <y>60</y>
 | 
			
		||||
     <width>93</width>
 | 
			
		||||
     <height>28</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>断开</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QLineEdit" name="editIp">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>80</x>
 | 
			
		||||
     <y>60</y>
 | 
			
		||||
     <width>113</width>
 | 
			
		||||
     <height>21</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QSpinBox" name="spnPort">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>220</x>
 | 
			
		||||
     <y>60</y>
 | 
			
		||||
     <width>131</width>
 | 
			
		||||
     <height>22</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
							
								
								
									
										23
									
								
								xyylMCWEACSystem/btngroupwidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,23 @@
 | 
			
		||||
#include "btngroupwidget.h"
 | 
			
		||||
 | 
			
		||||
 BtnGroupWidget::BtnGroupWidget(QWidget * parent  )
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
BtnGroupWidget::~BtnGroupWidget()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  BtnGroupWidget::init()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  BtnGroupWidget::initLay()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
bool  BtnGroupWidget::initConnect()
 | 
			
		||||
{
 | 
			
		||||
    bool bCon = true;
 | 
			
		||||
    return bCon;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								xyylMCWEACSystem/btngroupwidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,20 @@
 | 
			
		||||
#ifndef BTNGROUPWIDGET_H
 | 
			
		||||
#define BTNGROUPWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
 | 
			
		||||
class  BtnGroupWidget:public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit BtnGroupWidget(QWidget * parent = NULL);
 | 
			
		||||
    virtual  ~BtnGroupWidget();
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private:
 | 
			
		||||
};
 | 
			
		||||
#endif // BTNGROUPWIDGET_H
 | 
			
		||||
							
								
								
									
										74
									
								
								xyylMCWEACSystem/curchatwidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,74 @@
 | 
			
		||||
#include "curchatwidget.h"
 | 
			
		||||
 | 
			
		||||
CurChatWidget::CurChatWidget(QWidget * parent  ):QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 CurChatWidget::~CurChatWidget()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
void   CurChatWidget::painteXY(QPainter & painter)
 | 
			
		||||
{
 | 
			
		||||
    // 获取Widget的尺寸
 | 
			
		||||
    int width = this->width();
 | 
			
		||||
    int height = this->height();
 | 
			
		||||
 | 
			
		||||
    // 绘制X轴
 | 
			
		||||
    int marDec = 20;//边距
 | 
			
		||||
    painter.drawLine(0+marDec, height-marDec, width-marDec, height-marDec);
 | 
			
		||||
 | 
			
		||||
    // 绘制Y轴
 | 
			
		||||
    painter.drawLine(0+marDec, height-marDec, 0+marDec, 0+marDec);
 | 
			
		||||
    //横向分为五分
 | 
			
		||||
    for(int i =0;i< 5;i++)
 | 
			
		||||
    {
 | 
			
		||||
        //获取图形宽度
 | 
			
		||||
        int paWidth = width - marDec*2;
 | 
			
		||||
        int paheight = height -  marDec*2;
 | 
			
		||||
        int perWidth = paWidth/5;
 | 
			
		||||
        int xstart = marDec +perWidth* i;
 | 
			
		||||
        int ystart = marDec ;
 | 
			
		||||
 | 
			
		||||
        int xend = marDec +perWidth* i;
 | 
			
		||||
        int yend  = paheight+marDec;
 | 
			
		||||
         painter.setPen(Qt::lightGray);
 | 
			
		||||
         painter.drawLine(xstart, ystart, xend, yend);
 | 
			
		||||
 | 
			
		||||
         //每份里面又分为五分,虚线
 | 
			
		||||
         for(int j= 1 ;j<5;j++)
 | 
			
		||||
         {
 | 
			
		||||
             int  xstartSmall  =    xstart +perWidth/5* j;
 | 
			
		||||
             int ystartSmall   =    marDec ;
 | 
			
		||||
 | 
			
		||||
             int xendSmall= xstart +perWidth/5* j;
 | 
			
		||||
             int yendSmall  = paheight + marDec;
 | 
			
		||||
                 QPen pen;
 | 
			
		||||
                // QColor color(0xff,0,0);
 | 
			
		||||
                 QColor color( Qt::lightGray);
 | 
			
		||||
                 pen.setColor(color);
 | 
			
		||||
                 pen.setWidth(2);
 | 
			
		||||
                 pen.setCapStyle(Qt::RoundCap);
 | 
			
		||||
                 pen.setJoinStyle(Qt::BevelJoin);
 | 
			
		||||
                 pen.setStyle(Qt::DotLine);
 | 
			
		||||
 | 
			
		||||
             painter.setPen(pen);
 | 
			
		||||
             painter.drawLine(xstartSmall, ystartSmall, xendSmall, yendSmall);
 | 
			
		||||
         }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CurChatWidget::paintEvent(QPaintEvent *)
 | 
			
		||||
{
 | 
			
		||||
         QPainter painter(this);
 | 
			
		||||
          painter.setRenderHint(QPainter::Antialiasing, true);
 | 
			
		||||
 | 
			
		||||
          // 设置画笔的颜色和样式
 | 
			
		||||
          painter.setPen(Qt::black);
 | 
			
		||||
     painteXY(painter);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
							
								
								
									
										28
									
								
								xyylMCWEACSystem/curchatwidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,28 @@
 | 
			
		||||
#ifndef CURCHATWIDGET_H
 | 
			
		||||
#define CURCHATWIDGET_H
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QPainter>
 | 
			
		||||
#include <QMouseEvent>
 | 
			
		||||
#include <QPoint>
 | 
			
		||||
#include <QtMath>
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    des: 趋势图
 | 
			
		||||
*/
 | 
			
		||||
class  CurChatWidget: public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit  CurChatWidget(QWidget * parent =nullptr);
 | 
			
		||||
    virtual   ~CurChatWidget() ;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    /*
 | 
			
		||||
        des: 画xy轴 画虚线
 | 
			
		||||
    */
 | 
			
		||||
    void    painteXY(QPainter & painter);
 | 
			
		||||
 | 
			
		||||
    void paintEvent(QPaintEvent *) override;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
#endif // CURCHATWIDGET_H
 | 
			
		||||
							
								
								
									
										65
									
								
								xyylMCWEACSystem/devconwidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,65 @@
 | 
			
		||||
#include "devconwidget.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
DevConWidget::DevConWidget(QWidget * parent ):QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
DevConWidget::~DevConWidget()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  DevConWidget::init()
 | 
			
		||||
{
 | 
			
		||||
    //多通道无线脑电采集系统
 | 
			
		||||
    m_labDes.setText(tr("Multi-channel wireless EEG acquisition system"));
 | 
			
		||||
 | 
			
		||||
    //正在连接设备,请稍作等待
 | 
			
		||||
    m_labConStatus.setText(tr("We are connecting the device. Please wait a moment..."));
 | 
			
		||||
}
 | 
			
		||||
void  DevConWidget::initLay()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#if  0
 | 
			
		||||
    QHBoxLayout * hlayDes = new QHBoxLayout;
 | 
			
		||||
    QHBoxLayout * hlayImage = new QHBoxLayout;
 | 
			
		||||
    QHBoxLayout * hlayStatus = new QHBoxLayout;
 | 
			
		||||
    QVBoxLayout * vlay = new QVBoxLayout;
 | 
			
		||||
 | 
			
		||||
    vlay->addLayout(hlayDes);
 | 
			
		||||
    vlay->addLayout(hlayImage);
 | 
			
		||||
    vlay->addLayout(hlayStatus);
 | 
			
		||||
 | 
			
		||||
    hlayDes->addStretch();
 | 
			
		||||
    hlayDes->addWidget(&m_labDes);
 | 
			
		||||
    hlayDes->addStretch();
 | 
			
		||||
 | 
			
		||||
    hlayImage->addStretch();
 | 
			
		||||
    hlayImage->addWidget(&m_LabImage);
 | 
			
		||||
    hlayImage->addStretch();
 | 
			
		||||
 | 
			
		||||
    hlayStatus->addStretch();
 | 
			
		||||
    hlayStatus->addWidget(&m_labConStatus);
 | 
			
		||||
    hlayStatus->addStretch();
 | 
			
		||||
 | 
			
		||||
    setLayout(vlay);
 | 
			
		||||
#endif
 | 
			
		||||
  QHBoxLayout * hlayDes = new QHBoxLayout;
 | 
			
		||||
  hlayDes->addStretch();
 | 
			
		||||
  hlayDes->addWidget(&m_labDes);
 | 
			
		||||
  hlayDes->addWidget(&m_labConStatus);
 | 
			
		||||
  hlayDes->addWidget(&m_LabImage);
 | 
			
		||||
  hlayDes->addStretch();
 | 
			
		||||
  setLayout(hlayDes);
 | 
			
		||||
}
 | 
			
		||||
bool  DevConWidget::initConnect()
 | 
			
		||||
{
 | 
			
		||||
 bool bCon = true;
 | 
			
		||||
 return bCon;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								xyylMCWEACSystem/devconwidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,31 @@
 | 
			
		||||
#ifndef DEVCONWIDGET_H
 | 
			
		||||
#define DEVCONWIDGET_H
 | 
			
		||||
/*
 | 
			
		||||
    des: dev connect 设备连接窗口
 | 
			
		||||
    author:zhangyiming
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
 | 
			
		||||
class  DevConWidget:public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    DevConWidget(QWidget * parent = nullptr);
 | 
			
		||||
    virtual ~DevConWidget();
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private:
 | 
			
		||||
    //多听到无线脑电采集系统
 | 
			
		||||
    QLabel  m_labDes;
 | 
			
		||||
    //图片
 | 
			
		||||
    QLabel  m_LabImage;
 | 
			
		||||
    //正在连接设备,请稍作等待
 | 
			
		||||
    QLabel  m_labConStatus;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
#endif // DEVCONWIDGET_H
 | 
			
		||||
							
								
								
									
										45
									
								
								xyylMCWEACSystem/egg.qrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,45 @@
 | 
			
		||||
<RCC>
 | 
			
		||||
    <qresource prefix="/">
 | 
			
		||||
        <file>image/EEG_img_fre_checked.png</file>
 | 
			
		||||
        <file>image/EEG_img_fre_regular.png</file>
 | 
			
		||||
        <file>image/EEG_img_protocol_checked.png</file>
 | 
			
		||||
        <file>image/EEG_img_protocol_regular.png</file>
 | 
			
		||||
        <file>image/EGG_icon_amplify.png</file>
 | 
			
		||||
        <file>image/EGG_icon_markLeft.png</file>
 | 
			
		||||
        <file>image/EGG_icon_markRight.png</file>
 | 
			
		||||
        <file>image/EGG_icon_moveLeft.png</file>
 | 
			
		||||
        <file>image/EGG_icon_moveRight.png</file>
 | 
			
		||||
        <file>image/EGG_icon_reduce.png</file>
 | 
			
		||||
        <file>image/icon_amplify.png</file>
 | 
			
		||||
        <file>image/icon_back.png</file>
 | 
			
		||||
        <file>image/icon_exit.png</file>
 | 
			
		||||
        <file>image/img_bg_login.png</file>
 | 
			
		||||
        <file>image/img_EEG cap.png</file>
 | 
			
		||||
        <file>image/img_EEG.png</file>
 | 
			
		||||
        <file>image/img_lead.png</file>
 | 
			
		||||
        <file>image/img_login.png</file>
 | 
			
		||||
        <file>image/index_bg_data.png</file>
 | 
			
		||||
        <file>image/index_bg_data_char.png</file>
 | 
			
		||||
        <file>image/index_bg_EEG.png</file>
 | 
			
		||||
        <file>image/index_bg_EEG_char.png</file>
 | 
			
		||||
        <file>image/index_bg_setting.png</file>
 | 
			
		||||
        <file>image/index_bg_setting_char.png</file>
 | 
			
		||||
        <file>image/loading.png</file>
 | 
			
		||||
        <file>image/setting_btn_firstPage.png</file>
 | 
			
		||||
        <file>image/setting_btn_lastPage.png</file>
 | 
			
		||||
        <file>image/setting_btn_left.png</file>
 | 
			
		||||
        <file>image/setting_btn_right.png</file>
 | 
			
		||||
        <file>image/setting_icon_calendar.png</file>
 | 
			
		||||
        <file>image/setting_switch_off.png</file>
 | 
			
		||||
        <file>image/setting_switch_on.png</file>
 | 
			
		||||
        <file>image/index_bg_data_checked.png</file>
 | 
			
		||||
        <file>image/index_bg_data_hover.png</file>
 | 
			
		||||
        <file>image/index_bg_EEG_checked.png</file>
 | 
			
		||||
        <file>image/index_bg_EEG_hover.png</file>
 | 
			
		||||
        <file>image/index_bg_setting_checked.png</file>
 | 
			
		||||
        <file>image/index_bg_setting_hover.png</file>
 | 
			
		||||
        <file>image/sunnyou_logo.png</file>
 | 
			
		||||
        <file>image/icon_exit_checked.png</file>
 | 
			
		||||
        <file>image/icon_exit_hover.png</file>
 | 
			
		||||
    </qresource>
 | 
			
		||||
</RCC>
 | 
			
		||||
							
								
								
									
										90
									
								
								xyylMCWEACSystem/hospitalinfo.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,90 @@
 | 
			
		||||
#include "hospitalinfo.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
HospitalInfo::HospitalInfo(QWidget * parent ):QWidget (parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
HospitalInfo::~HospitalInfo()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  HospitalInfo::init()
 | 
			
		||||
{
 | 
			
		||||
    //医院名称
 | 
			
		||||
    m_labHospitalName.setText(tr("HospitalName"));
 | 
			
		||||
 | 
			
		||||
    //科室
 | 
			
		||||
    m_labSection.setText(tr("Section"));
 | 
			
		||||
 | 
			
		||||
    //用户数
 | 
			
		||||
    m_labUserNum.setText(tr("UserNum"));;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //数据库 名称
 | 
			
		||||
    m_labDataBaseName.setText(tr("DataBaseName"));
 | 
			
		||||
 | 
			
		||||
    //用户名
 | 
			
		||||
    m_labUser.setText(tr("User"));
 | 
			
		||||
 | 
			
		||||
    m_labpasswd.setText(tr("Passwd"));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //确认
 | 
			
		||||
    m_btnOK.setText(tr("Confirm"));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  HospitalInfo::initLay()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    QGridLayout * gridlaySearch = new QGridLayout;
 | 
			
		||||
    QHBoxLayout * hlay   = new QHBoxLayout;
 | 
			
		||||
    QVBoxLayout * vlay    = new QVBoxLayout;
 | 
			
		||||
    vlay->addLayout(gridlaySearch);
 | 
			
		||||
    vlay->addLayout(hlay);
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
 | 
			
		||||
    row ++;
 | 
			
		||||
    col = 0;
 | 
			
		||||
    gridlaySearch->addWidget(&m_labDataBaseName,row,col);
 | 
			
		||||
    gridlaySearch->addWidget(&m_editDataBaseName,row,++col);
 | 
			
		||||
 | 
			
		||||
    row ++;
 | 
			
		||||
    col = 0;
 | 
			
		||||
    gridlaySearch->addWidget(&m_labUser,row,col);
 | 
			
		||||
    gridlaySearch->addWidget(&m_editUser,row,++col);
 | 
			
		||||
 | 
			
		||||
    row ++;
 | 
			
		||||
    col = 0;
 | 
			
		||||
    gridlaySearch->addWidget(&m_labpasswd,row,col);
 | 
			
		||||
    gridlaySearch->addWidget(&m_editPasswd,row,++col);
 | 
			
		||||
 | 
			
		||||
    hlay->addStretch();
 | 
			
		||||
    hlay->addWidget(&m_btnOK);
 | 
			
		||||
    hlay->addStretch();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
bool  HospitalInfo::initConnect()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								xyylMCWEACSystem/hospitalinfo.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,44 @@
 | 
			
		||||
#ifndef HOSPITALINFO_H
 | 
			
		||||
#define HOSPITALINFO_H
 | 
			
		||||
/*
 | 
			
		||||
    des: Hospital Info 医院信息
 | 
			
		||||
    date: 20241028
 | 
			
		||||
*/
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
class HospitalInfo:public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit HospitalInfo(QWidget * parent = NULL);
 | 
			
		||||
    virtual  ~HospitalInfo();
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private:
 | 
			
		||||
    //医院名称
 | 
			
		||||
    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;
 | 
			
		||||
    //确认
 | 
			
		||||
    QPushButton m_btnOK;
 | 
			
		||||
};
 | 
			
		||||
#endif // HOSPITALINFO_H
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/.DS_Store
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EEG_img_fre_checked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EEG_img_fre_regular.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EEG_img_protocol_checked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EEG_img_protocol_regular.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EGG_icon_amplify.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 904 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EGG_icon_markLeft.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 477 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EGG_icon_markRight.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 453 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EGG_icon_moveLeft.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 951 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EGG_icon_moveRight.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 945 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/EGG_icon_reduce.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 848 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_amplify.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 904 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_back.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 607 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_exit.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_exit_checked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_exit_hover.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_工作陷波.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 638 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_时间常数.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_波幅.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 815 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_波速.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/icon_高频滤波.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/img_BEAM.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 63 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/img_EEG cap.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/img_EEG.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 25 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/img_bg_login.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 32 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/img_lead.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 55 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/img_login.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 573 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_EEG.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_EEG_char.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 33 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_EEG_checked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 27 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_EEG_hover.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 30 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_data.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_data_char.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 30 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_data_checked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 25 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_data_hover.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_setting.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_setting_char.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 32 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_setting_checked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 26 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/index_bg_setting_hover.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 29 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/loading.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 76 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/setting_btn_firstPage.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 803 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/setting_btn_lastPage.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 822 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/setting_btn_left.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 853 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/setting_btn_right.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 859 B  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/setting_icon_calendar.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/setting_switch_off.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/setting_switch_on.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/sunnyou_logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 39@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 40@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 41@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 42@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 43@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 44@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 51@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 52@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 53@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 54@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 55@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 56@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 58@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 59@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 60@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 61@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 66@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 67@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 68@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								xyylMCWEACSystem/image/组件 69@1x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.1 KiB  | 
							
								
								
									
										88
									
								
								xyylMCWEACSystem/loginwidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,88 @@
 | 
			
		||||
#include "loginwidget.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
LoginWidget::LoginWidget(QWidget * parent ):QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
}
 | 
			
		||||
 LoginWidget::~LoginWidget( )
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 void  LoginWidget::init()
 | 
			
		||||
 {
 | 
			
		||||
     //多通道无线脑电采集系统
 | 
			
		||||
     m_labDes.setText(tr("Multi-channel wireless EEG acquisition system"));
 | 
			
		||||
     //用户名
 | 
			
		||||
     m_labUser.setText(tr("user"));;
 | 
			
		||||
     //密码
 | 
			
		||||
     m_labpasswd.setText(tr("passwd"));;
 | 
			
		||||
 | 
			
		||||
      m_btnLogin.setText(tr("login"));;  ;
 | 
			
		||||
 }
 | 
			
		||||
 void  LoginWidget::initLay()
 | 
			
		||||
 {
 | 
			
		||||
#if 1
 | 
			
		||||
     QHBoxLayout * layhDes = new QHBoxLayout;
 | 
			
		||||
     QHBoxLayout * layhImage = new QHBoxLayout;
 | 
			
		||||
     QGridLayout * gridlay = new QGridLayout;
 | 
			
		||||
     QHBoxLayout * layhUserPasswd = new QHBoxLayout;
 | 
			
		||||
     QHBoxLayout * layhlogin = new QHBoxLayout;
 | 
			
		||||
 | 
			
		||||
     layhDes->addStretch();
 | 
			
		||||
     layhDes->addWidget(&m_labDes);
 | 
			
		||||
     layhDes->addStretch();
 | 
			
		||||
 | 
			
		||||
     layhImage->addStretch();
 | 
			
		||||
     layhImage->addWidget(&m_labImage);
 | 
			
		||||
     layhImage->addStretch();
 | 
			
		||||
 | 
			
		||||
     layhlogin->addStretch();
 | 
			
		||||
     layhlogin->addWidget(&m_btnLogin);
 | 
			
		||||
     layhlogin->addStretch();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     int col = 0;
 | 
			
		||||
     int row = 0;
 | 
			
		||||
     gridlay->addWidget(&m_labUser,row,col);
 | 
			
		||||
     gridlay->addWidget(&m_editUser,row,++col);
 | 
			
		||||
     row ++;
 | 
			
		||||
     col = 0;
 | 
			
		||||
     gridlay->addWidget(&m_labpasswd,row,col);
 | 
			
		||||
     gridlay->addWidget(&m_editpasswd,row,++col);
 | 
			
		||||
 | 
			
		||||
     layhUserPasswd->addStretch();
 | 
			
		||||
     layhUserPasswd->addLayout(gridlay);
 | 
			
		||||
     layhUserPasswd->addStretch();
 | 
			
		||||
 | 
			
		||||
     QVBoxLayout * layV = new QVBoxLayout;
 | 
			
		||||
     layV->addLayout(layhDes);
 | 
			
		||||
     layV->addLayout(layhImage);
 | 
			
		||||
     layV->addLayout(layhUserPasswd);
 | 
			
		||||
     layV->addLayout(layhlogin);
 | 
			
		||||
 | 
			
		||||
     setLayout(layV);
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 bool  LoginWidget::initConnect()
 | 
			
		||||
 {
 | 
			
		||||
     bool bCon = true;
 | 
			
		||||
     bCon = connect(&m_btnLogin,SIGNAL(clicked(bool)),this,SLOT(slotlogIn()));
 | 
			
		||||
     if(!bCon)
 | 
			
		||||
     {
 | 
			
		||||
         qDebug()<<"connect failed"<<endl;
 | 
			
		||||
 | 
			
		||||
     }
 | 
			
		||||
     return bCon;
 | 
			
		||||
 }
 | 
			
		||||
 void  LoginWidget::slotlogIn()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
							
								
								
									
										37
									
								
								xyylMCWEACSystem/loginwidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,37 @@
 | 
			
		||||
#ifndef LOGINWIDGET_H
 | 
			
		||||
#define LOGINWIDGET_H
 | 
			
		||||
/*
 | 
			
		||||
    des: login Widget 登录窗口
 | 
			
		||||
    author:zhangyiming
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
class  LoginWidget:public  QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit LoginWidget(QWidget * parent = NULL);
 | 
			
		||||
    virtual ~LoginWidget( );
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private slots:
 | 
			
		||||
    void slotlogIn();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    //多通道无线脑电采集系统
 | 
			
		||||
    QLabel m_labDes;
 | 
			
		||||
    QLabel m_labImage;
 | 
			
		||||
    //用户名
 | 
			
		||||
    QLabel m_labUser;
 | 
			
		||||
    QLineEdit m_editUser;
 | 
			
		||||
    //密码
 | 
			
		||||
    QLabel m_labpasswd;
 | 
			
		||||
    QLineEdit m_editpasswd;
 | 
			
		||||
 | 
			
		||||
    QPushButton m_btnLogin;
 | 
			
		||||
};
 | 
			
		||||
#endif // LOGINWIDGET_H
 | 
			
		||||
							
								
								
									
										69
									
								
								xyylMCWEACSystem/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,69 @@
 | 
			
		||||
#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>
 | 
			
		||||
#include <QGraphicsView>
 | 
			
		||||
#include <QGraphicsScene>
 | 
			
		||||
#include <QGraphicsEllipseItem>
 | 
			
		||||
#include <QGraphicsTextItem>
 | 
			
		||||
#include <QFont>
 | 
			
		||||
#include <qmath.h>
 | 
			
		||||
#include "curchatwidget.h"
 | 
			
		||||
#include "DevConWidget.h"
 | 
			
		||||
#include <mainwindow.h>
 | 
			
		||||
int main(int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
    QApplication a(argc, argv);
 | 
			
		||||
    CurChatWidget w;
 | 
			
		||||
    w.show();
 | 
			
		||||
    RegWidget re;
 | 
			
		||||
    re.show();
 | 
			
		||||
    MainWindow mainw;
 | 
			
		||||
    mainw.resize(1000,800);
 | 
			
		||||
    mainw.show();
 | 
			
		||||
 | 
			
		||||
#if   0
 | 
			
		||||
DevConWidget de;
 | 
			
		||||
de.show();
 | 
			
		||||
 | 
			
		||||
HospitalInfo ho;
 | 
			
		||||
ho.show();
 | 
			
		||||
 | 
			
		||||
LoginWidget log;
 | 
			
		||||
log.show();
 | 
			
		||||
 | 
			
		||||
MedicalRecordManager me;
 | 
			
		||||
me.show();
 | 
			
		||||
 | 
			
		||||
MedicalRecordWidget mew;
 | 
			
		||||
mew.show();
 | 
			
		||||
 | 
			
		||||
RegWidget re;
 | 
			
		||||
re.show();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    return a.exec();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										108
									
								
								xyylMCWEACSystem/mainwindow.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,108 @@
 | 
			
		||||
#include "mainwindow.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
 | 
			
		||||
MainWindow::MainWindow(QWidget * parent  ):QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
}
 | 
			
		||||
MainWindow::~MainWindow()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void  MainWindow::init()
 | 
			
		||||
{
 | 
			
		||||
        m_btnSystemSetting.setObjectName("SystemSetting");
 | 
			
		||||
        m_btnEEG.setObjectName("EEG");
 | 
			
		||||
        m_btnDataProcess.setObjectName("DataProcess");
 | 
			
		||||
}
 | 
			
		||||
void  MainWindow::initLay()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
     QHBoxLayout  * hlay  = new QHBoxLayout;
 | 
			
		||||
 | 
			
		||||
      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);}");
 | 
			
		||||
 | 
			
		||||
      m_btnSystemSetting.setStyleSheet("QPushButton{border-image:url(:/image/index_bg_setting_char.png);}"
 | 
			
		||||
                             "QPushButton:hover{border-image:url(:/image/index_bg_setting_hover.png);}"
 | 
			
		||||
                             "QPushButton:pressed{border-image:url(:/image/index_bg_setting_checked.png);}"
 | 
			
		||||
                             );
 | 
			
		||||
 | 
			
		||||
      m_btnEEG.setStyleSheet("QPushButton{border-image:url(:/image/index_bg_EEG_char.png);}"
 | 
			
		||||
                             "QPushButton:hover{border-image:url(:/image/index_bg_EEG_hover.png);}"
 | 
			
		||||
                             "QPushButton:pressed{border-image:url(:/image/index_bg_EEG_checked.png);}"
 | 
			
		||||
                             );
 | 
			
		||||
 | 
			
		||||
      m_btnDataProcess.setStyleSheet("QPushButton{border-image:url(:/image/index_bg_data_char.png);}"
 | 
			
		||||
                             "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));
 | 
			
		||||
 | 
			
		||||
       m_btnSystemSetting.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 | 
			
		||||
       m_btnEEG.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 | 
			
		||||
       m_btnDataProcess.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     hlay->addWidget(&m_btnSystemSetting);
 | 
			
		||||
     hlay->addSpacing(50);
 | 
			
		||||
     hlay->addWidget(&m_btnEEG);
 | 
			
		||||
     hlay->addSpacing(50);
 | 
			
		||||
     hlay->addWidget(&m_btnDataProcess);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     QVBoxLayout *vLay = new QVBoxLayout;
 | 
			
		||||
 | 
			
		||||
     m_titleWidget.setFixedHeight(100);
 | 
			
		||||
     hlay->setContentsMargins(150,100,150,100);
 | 
			
		||||
     hlay->setSpacing(1);
 | 
			
		||||
 | 
			
		||||
     vLay->addWidget(&m_titleWidget,1,Qt::AlignTop);
 | 
			
		||||
     vLay->addSpacing(3);
 | 
			
		||||
     vLay->addLayout(hlay,9);
 | 
			
		||||
     setLayout(vLay);
 | 
			
		||||
}
 | 
			
		||||
bool  MainWindow::initConnect()
 | 
			
		||||
{
 | 
			
		||||
    bool bCon = true;
 | 
			
		||||
    bCon = connect(&m_btnEEG,SIGNAL(clicked(bool)),this,SLOT(slotBtn()));
 | 
			
		||||
    if(!bCon)
 | 
			
		||||
    {
 | 
			
		||||
        qDebug()<<"connect failed"<<endl;
 | 
			
		||||
        return bCon;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    bCon = connect(&m_btnDataProcess,SIGNAL(clicked(bool)),this,SLOT(slotBtn()));
 | 
			
		||||
    if(!bCon)
 | 
			
		||||
    {
 | 
			
		||||
        qDebug()<<"connect failed"<<endl;
 | 
			
		||||
        return bCon;;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    bCon = connect(&m_btnSystemSetting,SIGNAL(clicked(bool)),this,SLOT(slotBtn()));
 | 
			
		||||
    if(!bCon)
 | 
			
		||||
    {
 | 
			
		||||
        qDebug()<<"connect failed"<<endl;
 | 
			
		||||
        return bCon;
 | 
			
		||||
    }
 | 
			
		||||
    return bCon;
 | 
			
		||||
}
 | 
			
		||||
void MainWindow::slotBtn()
 | 
			
		||||
{
 | 
			
		||||
    QObject * send = static_cast<QObject *>(sender());
 | 
			
		||||
    if(send == nullptr)
 | 
			
		||||
    {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    qDebug()<< send->objectName()<<endl;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								xyylMCWEACSystem/mainwindow.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,35 @@
 | 
			
		||||
#ifndef MAINWINDOW_H
 | 
			
		||||
#define MAINWINDOW_H
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    des: 主窗口
 | 
			
		||||
*/
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
#include "titlewidget.h"
 | 
			
		||||
class  MainWindow: public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    MainWindow(QWidget * parent = NULL);
 | 
			
		||||
    virtual  ~MainWindow();
 | 
			
		||||
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private slots:
 | 
			
		||||
     void slotBtn();
 | 
			
		||||
private:
 | 
			
		||||
    TitleWidget  m_titleWidget;
 | 
			
		||||
    //系统设置
 | 
			
		||||
    QPushButton m_btnSystemSetting;
 | 
			
		||||
    //脑电采集Electroencephalography
 | 
			
		||||
    QPushButton m_btnEEG;
 | 
			
		||||
    //数据处理Datarocessing
 | 
			
		||||
    QPushButton m_btnDataProcess;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif // MAINWINDOW_H
 | 
			
		||||
							
								
								
									
										63
									
								
								xyylMCWEACSystem/medicalrecordmanager.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,63 @@
 | 
			
		||||
#include "medicalrecordmanager.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
 | 
			
		||||
MedicalRecordManager::MedicalRecordManager(QWidget * parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
MedicalRecordManager::~MedicalRecordManager()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  MedicalRecordManager::init()
 | 
			
		||||
{
 | 
			
		||||
    //搜索条件
 | 
			
		||||
     m_grpSearchConditionDes.setTitle(tr("SearchCondition"));
 | 
			
		||||
    //检查号
 | 
			
		||||
    m_chCheckNum.setText(tr("CheckNum"));;
 | 
			
		||||
    QLineEdit m_editCheckNum;
 | 
			
		||||
    //姓名
 | 
			
		||||
     m_chName.setText(tr("Name"));;;
 | 
			
		||||
    //检查日期
 | 
			
		||||
     m_chCheckDate.setText(tr("CheckDate"));
 | 
			
		||||
    //搜索
 | 
			
		||||
    m_btnSearch.setText(tr("Search"));;;
 | 
			
		||||
}
 | 
			
		||||
void  MedicalRecordManager::initLay()
 | 
			
		||||
{
 | 
			
		||||
    QGridLayout * gridlaySearch = new QGridLayout;
 | 
			
		||||
    QHBoxLayout * hlaySearch = new QHBoxLayout;
 | 
			
		||||
    QVBoxLayout * vlaySearch = new QVBoxLayout;
 | 
			
		||||
    vlaySearch->addLayout(gridlaySearch);
 | 
			
		||||
    vlaySearch->addLayout(hlaySearch);
 | 
			
		||||
    m_grpSearchConditionDes.setLayout(vlaySearch);
 | 
			
		||||
 | 
			
		||||
    int col = 0;
 | 
			
		||||
    int row = 0;
 | 
			
		||||
    gridlaySearch->addWidget(&m_chCheckNum,row,col);
 | 
			
		||||
    gridlaySearch->addWidget(&m_editCheckNum,row,++col);
 | 
			
		||||
    row ++;
 | 
			
		||||
    col = 0;
 | 
			
		||||
    gridlaySearch->addWidget(&m_chName,row,col);
 | 
			
		||||
    gridlaySearch->addWidget(&m_editName,row,++col);
 | 
			
		||||
    row ++;
 | 
			
		||||
    col = 0;
 | 
			
		||||
    gridlaySearch->addWidget(&m_chCheckDate,row,col);
 | 
			
		||||
    gridlaySearch->addWidget(&m_editDate,row,++col);
 | 
			
		||||
 | 
			
		||||
    hlaySearch->addStretch();
 | 
			
		||||
    hlaySearch->addWidget(&m_btnSearch);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
bool  MedicalRecordManager::initConnect()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								xyylMCWEACSystem/medicalrecordmanager.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,47 @@
 | 
			
		||||
#ifndef MEDICALRECORDMANAGER_H
 | 
			
		||||
#define MEDICALRECORDMANAGER_H
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    des:病例管理--不部分完成
 | 
			
		||||
    date:20241028
 | 
			
		||||
*/
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
#include <QGroupBox>
 | 
			
		||||
#include <QCheckBox>
 | 
			
		||||
#include <QDateEdit>
 | 
			
		||||
class  MedicalRecordManager:public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit MedicalRecordManager(QWidget * parent =NULL);
 | 
			
		||||
    virtual ~MedicalRecordManager();
 | 
			
		||||
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    //搜索条件
 | 
			
		||||
    //QLabel  m_labSearchConditionDes;
 | 
			
		||||
    QGroupBox m_grpSearchConditionDes;
 | 
			
		||||
    //检查号
 | 
			
		||||
    QCheckBox m_chCheckNum;
 | 
			
		||||
 | 
			
		||||
    QLineEdit m_editCheckNum;
 | 
			
		||||
    //姓名
 | 
			
		||||
    QCheckBox m_chName;
 | 
			
		||||
 | 
			
		||||
    QLineEdit m_editName;
 | 
			
		||||
    //检查日期
 | 
			
		||||
    QCheckBox m_chCheckDate;
 | 
			
		||||
    QDateEdit m_editDate;
 | 
			
		||||
 | 
			
		||||
    //搜索
 | 
			
		||||
    QPushButton m_btnSearch;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // MEDICALRECORDMANAGER_H
 | 
			
		||||
							
								
								
									
										117
									
								
								xyylMCWEACSystem/medicalrecordwidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,117 @@
 | 
			
		||||
#include "medicalrecordwidget.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QFontMetrics>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
MedicalRecordWidget::MedicalRecordWidget(QWidget * parent   ):QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
}
 | 
			
		||||
MedicalRecordWidget::~MedicalRecordWidget()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  MedicalRecordWidget::init()
 | 
			
		||||
{
 | 
			
		||||
    //检查号
 | 
			
		||||
    m_labCheckNum.setText(tr("CheckNum"));
 | 
			
		||||
 | 
			
		||||
    //住院 hospitalized
 | 
			
		||||
    m_labHospitalized.setText(tr("hospitalized"));
 | 
			
		||||
 | 
			
		||||
    //门诊
 | 
			
		||||
    m_labOutpatient.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_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);
 | 
			
		||||
}
 | 
			
		||||
void  MedicalRecordWidget::initLay()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#if 1
 | 
			
		||||
    QHBoxLayout * hlayCheck  = new QHBoxLayout;
 | 
			
		||||
    QHBoxLayout * hlayName   = new QHBoxLayout;
 | 
			
		||||
    QHBoxLayout * hlayLaterality  =  new QHBoxLayout;
 | 
			
		||||
    QHBoxLayout * hlayDiagnosticRecord  =  new QHBoxLayout;
 | 
			
		||||
    QHBoxLayout * hlayokCancel  =  new QHBoxLayout;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    QVBoxLayout * vlay = new  QVBoxLayout;
 | 
			
		||||
    vlay->addLayout(hlayCheck);
 | 
			
		||||
    vlay->addLayout(hlayName);
 | 
			
		||||
    vlay->addLayout(hlayLaterality);
 | 
			
		||||
    vlay->addLayout(hlayDiagnosticRecord);
 | 
			
		||||
    vlay->addWidget(&m_textDiagnosticRecord);
 | 
			
		||||
    vlay->addLayout( hlayokCancel);
 | 
			
		||||
    setLayout(vlay);
 | 
			
		||||
 | 
			
		||||
    hlayCheck->addWidget(&m_labCheckNum,0,Qt::AlignHCenter);
 | 
			
		||||
    hlayCheck->addWidget(&m_editCheckNum);
 | 
			
		||||
    hlayCheck->addWidget(&m_labHospitalized);
 | 
			
		||||
    hlayCheck->addWidget(&m_chHospitalized);
 | 
			
		||||
    hlayCheck->addWidget(&m_labOutpatient);
 | 
			
		||||
    hlayCheck->addWidget(&m_chOutpatient);
 | 
			
		||||
    hlayCheck->addStretch();
 | 
			
		||||
 | 
			
		||||
    hlayName->addWidget(&m_labName,0,Qt::AlignHCenter);
 | 
			
		||||
    hlayName->addWidget(&m_editName);
 | 
			
		||||
    hlayName->addWidget(&m_labSex);
 | 
			
		||||
    hlayName->addWidget(&m_cbSex);
 | 
			
		||||
    hlayName->addStretch();
 | 
			
		||||
 | 
			
		||||
    hlayLaterality->addWidget(&m_labLaterality,0,Qt::AlignHCenter);
 | 
			
		||||
    hlayLaterality->addWidget(&m_cbLaterality);
 | 
			
		||||
    hlayLaterality->addWidget(&m_labDate_Of_inspection);
 | 
			
		||||
    hlayLaterality->addWidget(&m_dateInspection);
 | 
			
		||||
    hlayLaterality->addStretch();
 | 
			
		||||
 | 
			
		||||
    hlayDiagnosticRecord->addWidget(&m_labDiagnosticRecord,0,Qt::AlignHCenter);
 | 
			
		||||
    hlayDiagnosticRecord->addStretch();
 | 
			
		||||
 | 
			
		||||
    hlayokCancel->addStretch();
 | 
			
		||||
    hlayokCancel->addWidget(&m_btnOk);
 | 
			
		||||
    hlayokCancel->addSpacing(30);
 | 
			
		||||
    hlayokCancel->addWidget(&m_btnCancel);
 | 
			
		||||
    hlayokCancel->addStretch();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
bool  MedicalRecordWidget::initConnect()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								xyylMCWEACSystem/medicalrecordwidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,62 @@
 | 
			
		||||
#ifndef MEDICALRECORDWIDGET_H
 | 
			
		||||
#define MEDICALRECORDWIDGET_H
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    des: MedicalRecordWidget 填写病历
 | 
			
		||||
    author:zhangyiming
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
#include <QCheckBox>
 | 
			
		||||
#include <QComboBox>
 | 
			
		||||
#include <QDateEdit>
 | 
			
		||||
#include <QTextEdit>
 | 
			
		||||
#include <QGroupBox>
 | 
			
		||||
class MedicalRecordWidget:public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit MedicalRecordWidget(QWidget * parent  =nullptr);
 | 
			
		||||
    virtual ~MedicalRecordWidget();
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private:
 | 
			
		||||
    //检查号
 | 
			
		||||
    QLabel m_labCheckNum;
 | 
			
		||||
    QLineEdit m_editCheckNum;
 | 
			
		||||
 | 
			
		||||
    //住院 hospitalized
 | 
			
		||||
    QLabel m_labHospitalized;
 | 
			
		||||
    QCheckBox m_chHospitalized;
 | 
			
		||||
 | 
			
		||||
    //门诊
 | 
			
		||||
    QLabel m_labOutpatient;
 | 
			
		||||
    QCheckBox m_chOutpatient;
 | 
			
		||||
 | 
			
		||||
    //姓名
 | 
			
		||||
    QLabel m_labName;
 | 
			
		||||
    QLineEdit m_editName;
 | 
			
		||||
    //性别
 | 
			
		||||
    QLabel m_labSex;
 | 
			
		||||
    QComboBox m_cbSex;
 | 
			
		||||
 | 
			
		||||
    //左右利
 | 
			
		||||
    QLabel m_labLaterality;
 | 
			
		||||
    QComboBox m_cbLaterality;
 | 
			
		||||
 | 
			
		||||
    //检查日期
 | 
			
		||||
    QLabel m_labDate_Of_inspection;
 | 
			
		||||
    QDateEdit m_dateInspection;
 | 
			
		||||
 | 
			
		||||
    //诊断病历
 | 
			
		||||
    QLabel m_labDiagnosticRecord;
 | 
			
		||||
    QTextEdit m_textDiagnosticRecord;
 | 
			
		||||
 | 
			
		||||
    QPushButton m_btnOk;
 | 
			
		||||
    QPushButton m_btnCancel;
 | 
			
		||||
};
 | 
			
		||||
#endif // MEDICALRECORDWIDGET_H
 | 
			
		||||
							
								
								
									
										107
									
								
								xyylMCWEACSystem/regwidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,107 @@
 | 
			
		||||
 | 
			
		||||
#include "regwidget.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
RegWidget::RegWidget(QWidget * parent ):QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
RegWidget::~RegWidget( )
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
void  RegWidget::init()
 | 
			
		||||
{
 | 
			
		||||
    //注册说明:请与我公司联系获取注册码,联系电话:0372-7775-555
 | 
			
		||||
    m_labRegDes.setText(tr("Registration Instructions: Please contact our company to \n"
 | 
			
		||||
                           "obtain the registration code, contact phone: 0372-7775-555"));
 | 
			
		||||
    //安装序列号
 | 
			
		||||
    m_labInstallSerialNum.setText(tr("serial number"));
 | 
			
		||||
    //安装注册码
 | 
			
		||||
    m_labInstallRegNum.setText(tr("registration code"));
 | 
			
		||||
    //使用单位
 | 
			
		||||
    m_labCompany.setText(tr("Company"));
 | 
			
		||||
    //联系电话
 | 
			
		||||
    m_labTelephoneNum.setText(tr("TelephoneNum"));
 | 
			
		||||
    //注册确认
 | 
			
		||||
    m_btnOk.setText(tr("Registration confirmation"));
 | 
			
		||||
    //试用
 | 
			
		||||
    m_btnCancel.setText(tr("Free Trial"));
 | 
			
		||||
}
 | 
			
		||||
void  RegWidget::initLay()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     QHBoxLayout * layHDes = new QHBoxLayout;
 | 
			
		||||
     QHBoxLayout * layHOkCancel = new QHBoxLayout;
 | 
			
		||||
     QGridLayout * gridlayReg = new QGridLayout;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     layHDes->addStretch();
 | 
			
		||||
     layHDes->addWidget(&m_labRegDes);
 | 
			
		||||
     layHDes->addStretch();
 | 
			
		||||
 | 
			
		||||
     layHOkCancel->addStretch();
 | 
			
		||||
     layHOkCancel->addWidget(&m_btnOk);
 | 
			
		||||
     layHOkCancel->addWidget(&m_btnCancel);
 | 
			
		||||
     layHOkCancel->addStretch();
 | 
			
		||||
 | 
			
		||||
     int col = 0;
 | 
			
		||||
     int row = 0;
 | 
			
		||||
     gridlayReg->addWidget(&m_labInstallSerialNum,row,col);
 | 
			
		||||
     gridlayReg->addWidget(&m_editInstallSerialNum,row,++col);
 | 
			
		||||
     row ++;
 | 
			
		||||
     col = 0;
 | 
			
		||||
     gridlayReg->addWidget(&m_labInstallRegNum,row,col);
 | 
			
		||||
     gridlayReg->addWidget(&m_editInstallRegNum,row,++col);
 | 
			
		||||
     row ++;
 | 
			
		||||
     col = 0;
 | 
			
		||||
     gridlayReg->addWidget(&m_labCompany,row,col);
 | 
			
		||||
     gridlayReg->addWidget(&m_editCompany,row,++col);
 | 
			
		||||
     row ++;
 | 
			
		||||
     col = 0;
 | 
			
		||||
     gridlayReg->addWidget(&m_labTelephoneNum,row,col);
 | 
			
		||||
     gridlayReg->addWidget(&m_editTelephoneNum,row,++col);
 | 
			
		||||
 | 
			
		||||
     QVBoxLayout  * vlay  =new QVBoxLayout(this);
 | 
			
		||||
     vlay->addStretch();
 | 
			
		||||
     vlay->addLayout(layHDes);
 | 
			
		||||
     vlay->addLayout(gridlayReg);
 | 
			
		||||
     vlay->addLayout(layHOkCancel);
 | 
			
		||||
       vlay->setContentsMargins(30,1,30,1);
 | 
			
		||||
       vlay->setSpacing(1);
 | 
			
		||||
       vlay->addStretch();
 | 
			
		||||
     setLayout(vlay);
 | 
			
		||||
}
 | 
			
		||||
 bool  RegWidget::initConnect()
 | 
			
		||||
{
 | 
			
		||||
    bool bCon = true;
 | 
			
		||||
    bCon = connect(&m_btnOk,SIGNAL(clicked(bool)),this,SLOT(slotRegOk()));
 | 
			
		||||
    if(!bCon)
 | 
			
		||||
    {
 | 
			
		||||
        qDebug()<<"connect failed"<<endl;
 | 
			
		||||
        return bCon;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bCon = connect(&m_btnCancel,SIGNAL(clicked(bool)),this,SLOT(slotTrial()));
 | 
			
		||||
    if(!bCon)
 | 
			
		||||
    {
 | 
			
		||||
        qDebug()<<"connect failed"<<endl;
 | 
			
		||||
        return bCon;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return bCon;
 | 
			
		||||
}
 | 
			
		||||
 void RegWidget::slotRegOk()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 void RegWidget::slotTrial()
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
							
								
								
									
										48
									
								
								xyylMCWEACSystem/regwidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,48 @@
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
 | 
			
		||||
# pragma execution_character_set("utf-8")
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef REGWIDGET_H
 | 
			
		||||
#define REGWIDGET_H
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    des: Register Widget 注册窗口
 | 
			
		||||
    author:zhangyiming
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
class  RegWidget:public  QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit RegWidget(QWidget * parent = NULL);
 | 
			
		||||
    virtual ~RegWidget( );
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private slots:
 | 
			
		||||
    void slotRegOk();
 | 
			
		||||
    void slotTrial();
 | 
			
		||||
private:
 | 
			
		||||
    //注册说明
 | 
			
		||||
    QLabel m_labRegDes;
 | 
			
		||||
    //安装序列号
 | 
			
		||||
    QLabel m_labInstallSerialNum;
 | 
			
		||||
    QLineEdit m_editInstallSerialNum;
 | 
			
		||||
    //安装注册码
 | 
			
		||||
    QLabel  m_labInstallRegNum;
 | 
			
		||||
    QLineEdit m_editInstallRegNum;
 | 
			
		||||
    //使用单位
 | 
			
		||||
    QLabel  m_labCompany;
 | 
			
		||||
    QLineEdit m_editCompany;
 | 
			
		||||
    //联系电话
 | 
			
		||||
    QLabel m_labTelephoneNum;
 | 
			
		||||
    QLineEdit m_editTelephoneNum;
 | 
			
		||||
 | 
			
		||||
    QPushButton m_btnOk;
 | 
			
		||||
    QPushButton m_btnCancel;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
#endif // REGWIDGET_H
 | 
			
		||||
							
								
								
									
										64
									
								
								xyylMCWEACSystem/titlewidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,64 @@
 | 
			
		||||
#include "titlewidget.h"
 | 
			
		||||
#include <QHBoxLayout>
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
#include <QGridLayout>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
TitleWidget::TitleWidget(QWidget * parent ):QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    initLay();
 | 
			
		||||
    initConnect();
 | 
			
		||||
}
 | 
			
		||||
TitleWidget::~TitleWidget()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void  TitleWidget::init()
 | 
			
		||||
{
 | 
			
		||||
    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_btnRet.setStyleSheet("background-image:url(:/image/icon_exit.png);}");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    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(250,80));
 | 
			
		||||
   // m_labSystemName.setMaximumSize(QSize(100,300));
 | 
			
		||||
    m_btnRet.setMaximumSize(QSize(250,80));
 | 
			
		||||
 | 
			
		||||
     //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
 | 
			
		||||
    QHBoxLayout * hlay = new QHBoxLayout;
 | 
			
		||||
    hlay->addWidget(&m_labDes,Qt::AlignLeft);
 | 
			
		||||
    hlay->addWidget(&m_labSystemName,1,Qt::AlignHCenter);
 | 
			
		||||
    //hlay->addStretch();
 | 
			
		||||
    hlay->addWidget(&m_btnRet,1,Qt::AlignRight);
 | 
			
		||||
    setLayout(hlay);
 | 
			
		||||
#else
 | 
			
		||||
    QGridLayout * hlay = new   QGridLayout;
 | 
			
		||||
    hlay->addWidget(&m_labDes,0,0 );
 | 
			
		||||
    hlay->addWidget(&m_labSystemName,0,1,Qt::AlignHCenter );
 | 
			
		||||
    //hlay->addStretch();
 | 
			
		||||
    hlay->addWidget(&m_btnRet,0,2 );
 | 
			
		||||
    hlay->setContentsMargins(1,1,1,1);
 | 
			
		||||
    setLayout(hlay);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
bool  TitleWidget::initConnect()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								xyylMCWEACSystem/titlewidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,24 @@
 | 
			
		||||
#ifndef TITLEWIDGET_H
 | 
			
		||||
#define TITLEWIDGET_H
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QLineEdit>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class  TitleWidget:public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    TitleWidget(QWidget * parent = NULL);
 | 
			
		||||
    virtual  ~TitleWidget();
 | 
			
		||||
 | 
			
		||||
    void  init();
 | 
			
		||||
    void  initLay();
 | 
			
		||||
    bool  initConnect();
 | 
			
		||||
private:
 | 
			
		||||
     QLabel  m_labDes;
 | 
			
		||||
     QLabel  m_labSystemName;
 | 
			
		||||
     QPushButton m_btnRet;
 | 
			
		||||
};
 | 
			
		||||
#endif // TITLEWIDGET_H
 | 
			
		||||