qt 创建单例 .h .cpp形式 继承Qobject
时间: 2024-03-26 11:40:34 浏览: 118
QT标准界面cpp,.h文件
好的,如果要创建继承自QObject的单例类,可以参考下面的示例:
Singleton.h文件:
```cpp
#ifndef SINGLETON_H
#define SINGLETON_H
#include <QObject>
class Singleton : public QObject {
Q_OBJECT
public:
static Singleton& getInstance();
private:
Singleton(QObject* parent = nullptr);
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
~Singleton();
};
#endif // SINGLETON_H
```
Singleton.cpp文件:
```cpp
#include "Singleton.h"
Singleton& Singleton::getInstance() {
static Singleton instance;
return instance;
}
Singleton::Singleton(QObject* parent) : QObject(parent) {
// TODO: 对象初始化
}
Singleton::~Singleton() {
// TODO: 对象销毁
}
```
在上述示例中,我们继承自QObject,并使用Q_OBJECT宏来启用Qt的元对象系统。同时,在构造函数中,我们可以将父对象parent传递给QObject的构造函数,以确保在父对象销毁时,子对象也会被销毁。
需要注意的是,由于QObject的拷贝构造函数和赋值运算符被删除,因此我们也需要显式地将Singleton的拷贝构造函数和赋值运算符删除,以确保该类只能创建一个对象。
最后,在getInstance()静态方法中,我们使用局部静态变量来确保Singleton实例的唯一性,并返回该实例的引用。
阅读全文