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'aideStylesheets sur le site de Trolltech est proposée.