Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从插件读取当前Qt Creator主题_Qt_Qt Creator_Qtplugin - Fatal编程技术网

从插件读取当前Qt Creator主题

从插件读取当前Qt Creator主题,qt,qt-creator,qtplugin,Qt,Qt Creator,Qtplugin,Qt Creator有一个插件,它的UI只是一个ActiveX 问题是,如果用户更改Qt Creator主题,ActiveX不会反映它 这就是为什么我需要将有关颜色的信息传递给ActiveX,但为此,插件必须读取主题颜色信息。此外,当当前主题刚刚更改时,需要通知插件 我绝对是Qt的新手。突然,我没有找到一个API来读取主题颜色 有没有办法从Qt Creator插件中获取当前主题颜色,以及如何捕获主题刚刚更改的时间?有src/libs/utils/theme/theme.h包含utils::the

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_dependens+=Utils
,使用CMake add
Utils
to
dependens
),并使用
包含在要访问主题的源代码中

使用
Utils::creatorTheme()
获取主题。请注意,这是在核心插件的
initialize
方法中设置的,因此它在插件的构造函数中不可用,只能在
initialize
及更高版本中使用(请参阅)

然后,您可以在
主题中查询
主题::调色板()
和各种其他特定于任务的颜色


主题在运行时无法更改,因此您可以在启动时(或以后需要设置东西时)安全地查询主题。

我不确定Qt creator的主题颜色是否使用应用程序调色板系统设置,但请尝试获取
QApplication::instance()->palette()
并在那里列出颜色,看看它们是否有意义。否则,您可能希望查看
QStyle
机制,看看
Qt Creator
是否使用自己的样式。