#pragma once
//功能: 1. 全局的配置文件
// 2. 单例模式进行读取
#include <iostream>
#include<string>
#include <QString>
#include <QByteArray>
using namespace std;
typedef struct _SCompass
{
double XOffset;
double YOffset;
double ZOffset;
}SCompass;
typedef struct _SConfig
{
QString MProtocol;
QString MPortNum;
SCompass ObSCompass;
double MRotationAngle;
}SConfig;
//单例模式
class Config
{
private:
//静态指针保存唯一对象
static Config* pConfig;
private:
//防止用户继续使用Config实例其它对象,将构造拷贝构造私有化
Config() { count = 0; }
Config(const Config& ob) { count = 0; }
int count;
SConfig sConfig;
public:
//提供一个公共的方法 获取唯一的实例地址
static Config* getSingle();
void MChangeProtocolAndPortNum(QString& MProtocol, QString& MPortNum);
void MChangeCompass(double XOffset, double YOffset,double ZOffset);
void MChangeRotationAngle(double MRotationAngle);
void MqDebug();
void MWriteXml();
};
资源:https://download.csdn.net/download/weixin_44715313/18665085
总结:在传递写入信号的时候,也可以使用单例模式这个类,为其添加一个object信号槽机制,由于每个界面都会继承它,故可以在每个界面进行一个监听(为什么要每个界面都监听?因为数据分布在各个界面)。
这里使用单例模式的原因:在不同文件里对同一个类对象进行修改。
先采用信号的所谓的转发方式进行,文件一多则代码冗余