Qt Creator 有一个插件,它的 UI 只是一个 ActiveX。
问题是如果用户更改了 Qt Creator 主题,ActiveX 不会反映它。
这就是为什么我需要将有关颜色的信息传递给 ActiveX,但为此,插件必须读取主题颜色信息。此外,当当前主题刚刚更改时,需要通知插件。
我绝对是 Qt 的新手。突然,我还没有找到读取主题颜色的 API。
有没有办法从 Qt Creator 插件中获取当前的主题颜色,以及如何在主题刚刚更改时捕捉到?
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 add QTC_LIB_DEPENDS += utils
,使用 CMake add Utils
to DEPENDS
)并将 with 包含#include <utils/theme/theme.h>
在要访问主题的源代码中。
获取主题Utils::creatorTheme()
。请注意,这是在核心插件的initialize
方法中设置的,因此它在插件的构造函数中不可用,而仅在initialize
及以后的版本中可用(请参阅插件生命周期)。
然后,您可以查询和各种其他特定于任务的颜色Theme
。Theme::palette()
主题在运行时无法更改,因此您只需在启动期间(或稍后您需要设置您的东西)查询此主题是安全的。