[AssistantTool]_5_添加配置界面,使用单例模式
Posted 暮色1994
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[AssistantTool]_5_添加配置界面,使用单例模式相关的知识,希望对你有一定的参考价值。
[AssistantTool]_5_添加配置界面,使用单例模式
创建时间:20200525 23:35:58
- 使用单例模式,由于需要使用ui,所以这里没有将SettingForm构造函数私有化。需要使用的时候进行注意使用instances获取实例。
- 如果界面已经由ui加载了, 这里会直接将this赋值给inst. instances中不会在new SettingForm();
界面
代码
- 头文件
#ifndef SETTINGFORM_H
#define SETTINGFORM_H
#include <QWidget>
#include <QString>
namespace Ui {
class SettingForm;
}
class SettingForm : public QWidget
{
Q_OBJECT
public:
explicit SettingForm(QWidget *parent = nullptr);
~SettingForm();
static SettingForm *instances();
QString version;
private:
Ui::SettingForm *ui;
};
#endif // SETTINGFORM_H
- 源文件
#include "settingform.h"
#include "ui_settingform.h"
#include <QDebug>
static SettingForm *inst = nullptr;
SettingForm::SettingForm(QWidget *parent) :
QWidget(parent),
ui(new Ui::SettingForm)
{
ui->setupUi(this);
version = ui->label_version->text();
inst = this;
}
SettingForm::~SettingForm()
{
delete ui;
if( inst != this && inst != nullptr )
{
delete inst;
}
}
SettingForm *SettingForm::instances()
{
qDebug() << "getSetting";
if( inst == nullptr )
{
qDebug() << "inst is null, and new SettingForm()";
inst = new SettingForm();
}
return inst;
}
使用
- 使用instances获取SettingForm的实例。
#include "settingform.h"
SettingForm *sett = SettingForm::instances();
qDebug() << sett->version;
以上是关于[AssistantTool]_5_添加配置界面,使用单例模式的主要内容,如果未能解决你的问题,请参考以下文章
[AssistantTool]_5_添加配置界面,使用单例模式
[AssistantTool]_11_添加asc解析并显示波形