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