2017-01-06 1 views
0

Je vais développer une application en utilisant Qt, et je veux utiliser les icônes dans /usr/share/icons répertoire, cependant, je ne savoir comment faire changer les icônes automatiquement lorsque le thème de l'environnement de bureau a changé.Comment obtenir le nom de thème actuel de l'environnement de bureau Linux en utilisant Qt C++

J'utilise QIcon et déclarant le chemin d'icône par chemin absolu, par exemple, je veux utiliser Numix-Circle thème d'icônes, donc je l'ai fait:

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

Mais l'icône ne changera pas avec le changement de thème DE, en outre, si l'utilisateur n'installe pas le thème, l'icône dans l'application ne s'affiche pas.

Existe-t-il un moyen d'obtenir les icônes à partir de l'environnement de bureau ou l'autre façon de rendre les icônes de l'application réactives?

+1

['QIcon :: fromTheme()'] (http://doc.qt.io/qt-5/qicon.html#fromTheme)? – BoBTFish

+0

J'ai trouvé que le nom du thème revenait de 'QIcon :: themeName()' est ** adwaita ** mais j'utilise ** numix ** maintenant. Je vais essayer de la fonction Thème à nouveau plus tard. – FloatFlower

Répondre

0

QIcon::fromTheme("gnome-do") retournera un QIcon du thème actuel. Dans KDE, si vous modifiez le thème de l'icône, les icônes doivent également être mises à jour pour correspondre au nouveau thème.