web-dev-qa-db-fra.com

Comment Qt pourrait-il appliquer un style à partir d'un fichier de feuille de style Qt externe?

J'aimerais que les utilisateurs puissent personnaliser l'apparence par défaut de nos applications en chargeant simplement leurs PROPRES fichiers de feuilles de style Qt. Comment pouvons-nous y parvenir? Quelqu'un peut-il me donner une longueur d'avance?

29
Owen

Supposons que l'utilisateur ait sa feuille de style nommée stylesheet.qss et se trouve dans le dossier d'application.

Vous pouvez charger la feuille de style au démarrage de l'application, en utilisant l'argument -stylesheet:

myapp->stylesheet = stylesheet.qss;

Mais cela nécessite que votre utilisateur sache comment démarrer une application avec des arguments.

Vous pouvez également ajouter une boîte de dialogue de paramètres dans votre application, où l'utilisateur peut choisir un chemin de feuille de style.

Vous pouvez ensuite ouvrir ce fichier, charger le contenu et le définir dans votre application avec QApplication :: setStyleSheet () :

 QFile File("stylesheet.qss");
 File.open(QFile::ReadOnly);
 QString StyleSheet = QLatin1String(File.readAll());

 qApp->setStyleSheet(StyleSheet);

Qt fournit un exemple en ligne qui pourrait être utile.

35
Jérôme

Vous venez de définir la feuille de style pour l'ensemble de l'application en fonction de la configuration fournie par le client.

http://doc.qt.io/qt-5/qapplication.html#styleSheet-prop

Vous pouvez définir/obtenir cette configuration à partir de n'importe quel nombre d'endroits, une boîte de dialogue des propriétés dans l'application est probablement l'approche la plus naturelle.

3
James Gaunt