[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解析并显示波形