如何使用 Qt C++ 从 linux 桌面环境获取当前主题名称

How to get current theme name from linux desktop environment using Qt C++

我打算用Qt开发一个app,想用/usr/share/icons目录下的图标,但是不知道怎么制作当桌面环境主题改变时,图标会自动改变。

我用的是QIcon,图标路径是用绝对路径声明的,比如我想用Numix-Circle图标主题,所以就这样做了:

QPushButton *button = new QPushButton ;
QIcon icon ( '/usr/share/icons/Numix-Circle/48/apps/gnome-do.svg' ) ;
button -> setText ( "" ) ;
button -> setIcon ( icon );

但是图标不会随着DE主题的改变而改变,另外,如果用户没有安装主题,应用中的图标将不会显示。

有没有什么方法可以从桌面环境中获取图标?或者其他方法可以使应用程序中的图标具有响应性?

QIcon::fromTheme("gnome-do") 将 return 来自当前主题的 QIcon。在 KDE 中,如果您更改图标主题,图标也应更新以匹配新主题。