Qt Creator有一个插件,它的UI只是一个ActiveX。
问题是,如果用户更改了Qt Creator主题,ActiveX就不会反映出来
这就是为什么我需要将有关颜色的信息传递给ActiveX,但为此,插件必须读取主题颜色信息。此外,当当前主题刚刚更改时,需要通知插件。
我在Qt方面绝对是个新手。突然,我还没有找到一个API来阅读主题颜色。
有没有一种方法可以从Qt Creator插件中获取当前的主题颜色,以及如何捕捉主题刚刚更改的时间?
有一个src/libs/utils/theme/theme.h
,它包含Utils::Theme
类和函数Utils::Theme *Utils::creatorTheme()
。
让插件依赖于Utils库(使用qmake添加QTC_LIB_DEPENDS += utils
,使用CMake将Utils
添加到DEPENDS
(,并将#include <utils/theme/theme.h>
包含在要访问主题的源中。
使用Utils::creatorTheme()
获取主题。请注意,这是在Core插件的initialize
方法中设置的,因此它在插件的构造函数中不可用,但仅在initialize
及更高版本中可用(请参阅插件生命周期(。
然后,您可以在Theme
中查询Theme::palette()
和其他各种特定于任务的颜色。
主题在运行时不会更改,所以只需在启动时(或稍后需要设置内容时(查询即可。