C++ c++;应用程序保存和应用首选项模式(可能是boost或其他类型)
典型情况:您有一个应用程序,用于保存和加载首选项 (保存和加载由类C++ c++;应用程序保存和应用首选项模式(可能是boost或其他类型),c++,c++11,boost,C++,C++11,Boost,典型情况:您有一个应用程序,用于保存和加载首选项 (保存和加载由类Config处理) 想象一下,对某些GUI元素的字体有这样的偏好 所以我们有 struct Font; struct Config { const Font& getFontForSpecificGUIElement() const; //save to disk if Font changed void setFontForSpecificGUIElement(Font); }; 无论何时更
Config
处理)
想象一下,对某些GUI元素的字体有这样的偏好
所以我们有
struct Font;
struct Config {
const Font& getFontForSpecificGUIElement() const;
//save to disk if Font changed
void setFontForSpecificGUIElement(Font);
};
无论何时更改字体,我都需要将该更改通知classSpecificGUIElement
的所有实例
如何实现这种通知功能
为了保持Config
简单,我想将该功能解耦。此外,还会有很多这样的房产(30-50个)
因此,总的来说,我希望:
Font
,当新的GUI元素订阅此类事件时,它们将接收事件,并自动为它们触发事件,它们将接收Font
的最后一个变体)QEvent
子系统。但因为这是不可能的
将事件发送到未知的侦听器这是不可能的。为什么不发信号/插槽,首先需要继承QObject
,其次要实现(4),我必须创建MessageBus
类来缓存最后的值,添加新事件开始需要做很多工作:
添加数据字段,添加新信号,添加函数(X)以发出新信号,因为信号实际上受保护,
在(X)中,我需要将上一个值与新值进行比较。是的,此alsready存在于例如: 增压信号2
(4)[缓存上次更改的值+3个简单的附加新事件]
读作(4)[缓存上次更改的值+(5)同时添加简单的新事件]
我在boost signals2的基础上实现了所需的功能,详细信息如下:我更新了我的问题,说明为什么Qt不适合我的情况。我看不出如何在boost signals2中实现(4)[缓存上次更改的值+3个简单的附加新事件],请描述一下?(4)[缓存上次更改的值+3个简单的附加新事件]
读作(4)[缓存上次更改的值+(5)同时添加简单的新事件]
我在boost signals2的基础上实现了所需的功能,详情如下: