asp网站建设教程,ftp免费网站空间,安居客官网网站,内部链接网站大全文章目录摘要单例模式如何使用Qt 的属性系统总结关键字#xff1a;
Qt、
单例、
的、
Q_GLOBAL_STATIC、
女神节摘要
世界上第一位电脑程序设计师是名女性#xff1a;Ada Lovelace (1815-1852)是一位英国数学家兼作家#xff0c;她是第一位主张计算机不只可以用来算数的人… 文章目录摘要单例模式如何使用Qt 的属性系统总结关键字
Qt、
单例、
的、
Q_GLOBAL_STATIC、
女神节摘要
世界上第一位电脑程序设计师是名女性Ada Lovelace (1815-1852)是一位英国数学家兼作家她是第一位主张计算机不只可以用来算数的人也发表了第一段分析机用的演算法。因此Ada 被公认为史上第一位认识电脑完全潜能的人也是史上第一位电脑程序设计师。女神节就要到了搞篇文章记录一下。祝福程序猿们女神节快乐。 单例模式
因为项目需要想这让某一个类只能存在一个开始是网上各种找后面发现Qt 自己就有很好的功能直接上代码吧
Q_GLOBAL_STATIC(Turing_ElectroPhysiology,turing_ElectroPhysiology) // 单例宏这样就可以了这里展示部分代码。
头文件如下
public:Turing_ElectroPhysiology();static Turing_ElectroPhysiology* getInstance();~Turing_ElectroPhysiology();这里有点理解其实Qt 的这个单例模式是可以和普通的类一样使用的当我调用构造函数的时候就是普通类当我们调用getInstance接口的时候就是单例了网上看到的基本都是直接把构造函数私有化。
其实我也尝试过把把构造函数私有化但是呢编译不过所以暂时就先这用。
如何使用
这个就更简单了平时我们使用的时候用的是 new这里直接使用接口就了带么如下
m_Turing_ElectroPhysiology Turing_ElectroPhysiology::getInstance();这样在这个类第一次调用的时候就会创建一个静态的实例后面每次调用getInstance接口返回的都是这个实例但是当我调用new 的时候那就是一个新的的实例了。
Qt 的属性系统
Qt 的属性系统是嘎嘎爽最近迷恋上了这个了代码如下 Q_PROPERTY(int usb_VID READ usb_VID WRITE setUsb_VID NOTIFY usb_VIDChanged)Q_PROPERTY(int usb_PID READ usb_PID WRITE setUsb_PID NOTIFY usb_PIDChanged)Q_PROPERTY(int samplingRate READ samplingRate WRITE setSamplingRate NOTIFY samplingRateChanged)这个比弄一个公有变量感觉舒服多了主要要可以正价好多代码哈哈哈如果有的公司用代码量作为KPI 的话这个是不是可以哈哈啊哈哈哈。
总结
单例模式其实我也是第一次方式使用对设计模式理解的也不是真么到位目前还是以实现功能为导向变推进变学习。所以目前的单例可以满足我的需求。其实这个单例模式就是Qt的线程池的实现方式。
参考代码如下
class Q_CORE_EXPORT QThreadPool : public QObject
{Q_OBJECTpublic:QThreadPool(QObject *parent nullptr);~QThreadPool();static QThreadPool *globalInstance();
......
}
qthreadpool.cppQ_GLOBAL_STATIC(QThreadPool, theInstance)
QThreadPool *QThreadPool::globalInstance()
{return theInstance(); // 这里不带括号也行.
}