Trolltech DevDays 2006 : Styling Qt widgets using stylesheets

Matthieu Brucher

Les stylesheets, outil permettant de contourner les limitations de QStyle, résumé de la conférence de Girish Ramakrishnan lors des Trolltech DevDays 2006.

- Titre : Trolltech DevDays 2006 : Styling Qt widgets using stylesheets

- Auteur : Matthieu Brucher

- Parution : 1 novembre 2006

- Licence : Copyright ® 2006 Matthieu Brucher. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Qui est Girish Ramakrishnan ?

- II. Résumé de la présentation

- II-A. QStyle

- II-B. Stylesheet

- III. Conclusion

I - Qui est Girish Ramakrishnan ?

Girish Ramakrishnan est développeur chez Trolltech et s'occupe plus particulièrement des stylesheets.

II - Résumé de la présentation

Si les clients veulent un bouton rouge, on doit pouvoir leur fournir. Avant, on devait utiliser QStyle, avec ses avantages et ses inconvénients. Maintenant, on peut utiliser les feuilles de style.

II-A - QStyle

Ici, il faut utiliser la palette des widgets, avec QStyle qui est utilisé pour dessiner le widget. Malheureusement, les styles n'utilisent pas les mêmes données dans la palette pour le même dessin. PAr exemple Plastique utilise ButtonRole pour la couleur du bouton, tandis que Windows utilise BaseRole.

Pour customiser le style, il faut dériver un nouveau QStyle, sachant qu'on ne peut pas particulariser un bouton spécial. D'om les feuilles de style.

II-B - Stylesheet

Une feuille de style sert à customiser simplement des couleurs ou un fond, tout ce que QStyle promet, mais plus encore.

Les feuilles de style sont inspirées de CSS, mais adaptées. Il y a interactivité dans l'exécution, pas beosin de recompiler l'application lorsque la feuille de style est changée. Comme pour CSS, il existe des pseudo-états - permettant de savoir si le bouton est appuyé, si on passepar-dessus, ... -.

La feuille de style peut être définie pour l'aplication ou pour n'importe quel widget, de manière hiérarchique. De plus, il est possible de créer une feuille de style particulière pour un widget d'un certain nom.

On peut aussi gérer les widgets complexes utilisant plusieurs sous-widgets, comme une QComboBox qui possède une liste de sléection, mais aussi un bouton.

Il reste encore du travail, par exemple MacOS ne supporte pas encore les feuilles de style, on ne peut pas créer son propre widget, d'ailleurs tous les widgets ne peuvent pas accueillir une nouvelle feuille de style, on ne peut pas modifier le comportement car l'API n'est pas accessible de l'extéreiur.

III - Conclusion

Depuis 12 ans, Matthias Ettrich attendait ce moment. Les feuilles de style sont disponibles sous Qt. Il reste encore beaucoup de travail à faire, mais le premier pas a été fait. Pour plus de renseignements, une page d'aide sur le site de Trolltech est proposée.