Bonjour à tous.
Je voudrais utiliser un thème, et plus particulièrement le thème MAC OS X, mais sur un programme seulement.
Quelqu'un serait-t-il comment faire ?
Merci d'avance
Version imprimable
Bonjour à tous.
Je voudrais utiliser un thème, et plus particulièrement le thème MAC OS X, mais sur un programme seulement.
Quelqu'un serait-t-il comment faire ?
Merci d'avance
Joe,
La doc de Qt explique comment les utiliser.
Tu n'as qu'à appliquer. :)
Certes, mais le style mac nécessite l'Apple Appearence Manager.
Or, étant sous Windows, je ne l'ai pas.
Une idée ?
Salut, comme dit dans la doc :
Donc tu peux te le refaire toi-même avec des QStyle, ou des feuilles de style.Citation:
This style is only available on Mac OS X because it relies on the Apple Appearance Manager
Moi j'arrive à obtenir ça avec des feuilles de style :
http://electronicsforfun.com/develop...getSpecial.png
Mais bon, la feuille de style est tellement grosse que ça galère à charger, et c'est lent.
Il ne vous reste plus qu'à concevoir un thème MacOS X. :king:
Merci beaucoup.
Mais je n'ai jamais eu l'occasion d'utiliser (jusqu'à maintenant) une telle technique. Un tutoriel, un détail de fonction, ou autre ?
Ce serait vraiment bien.
Merci d'avance.
ou tout simplement la doc ?Citation:
Un tutoriel, un détail de fonction, ou autre ?
Euh, en fait pour être clair, il est d'impossible de faire appel au thème MAC sous windows. Le seul moyen, et c'est celui dont MacPro te parle, est de définir toi même la forme/couleur de tes fenêtres, ainsi que tous les paramèters d'affichage de celles ci. Cette redéfinition se fait grâce aux stylesheets sous Qt.
Mais autant te dire que ce sera long ! Si c'est juste dans un souci d'esthétique, il existe d'autres thèmes sympa déjà inclus dans Qt, comme le QCleanlooksStyle ou encore le QPlastiqueStyle.
Bonne chance,
G
J'aurais besoin d'une petite précision sur la doc :
Je ne comprend pas bien le pourquoi du comment...Citation:
Customizing Using Dynamic Properties
There are many situations where we need to present a form that has mandatory fields. To indicate to the user that the field is mandatory, one effective (albeit esthetically dubious) solution is to use yellow as the background color for those fields. It turns out this is very easy to implement using Qt Style Sheets. First, we would use the following application-wide style sheet:
This means that every widget whose mandatoryField Qt property is set to true would have a yellow background.Code:
1
2 *[mandatoryField="true"] { background-color: yellow }
Then, for each mandatory field widget, we would simply create a mandatoryField property on the fly and set it to true. For example:
Code:
1
2
3
4
5
6
7
8 QLineEdit *nameEdit = new QLineEdit(this); nameEdit->setProperty("mandatoryField", true); QLineEdit *emailEdit = new QLineEdit(this); emailEdit->setProperty("mandatoryField", true); QSpinBox *ageSpinBox = new QSpinBox(this); ageSpinBox->setProperty("mandatoryField", true);
Merci d'avance...
D'après ce que je comprends, on t'indique que dans certains cas, tu peux avoir besoin de faire comprendre qu'il est obligatoire de remplir certains widgets (ex. un champ NOM :). Pour cela, il se peut que tu veuilles faire colorier le fond d'un champ obligatoire d'un couleur spéciale (ici le jaune).
Tu as plusieurs solutions :
Admettons que tu aies 4 QLineEdit dont deux sont obligatoires, on les appelera A,B,C,D. Il faut colorier C et D en jaune.
Avec les feuilles de styles, tu peux lister les propriétés à des des objets particuliers, par exemple, tu pourrait faire :
Dans le code ci dessus, le # sert de sélecteur. Pour peu d'éléments ça va, mais lorsque tu en as beaucoup ça devient trop long à charger, et de plus point de vue maintenant c'est pas tip top.Code:
1
2
3
4
5 QLineEdit#C, QLineEdit#D { background-color: yellow; }
La solution proposée ici c'est d'ajouter une propriété appelée mandatoryField.
Pourquoi ajouter cette propriété ? Hé bien parce que elle n'existe pas !
Elle fonctionnera alors comme une autre propriété du genre "pressed" (pour un bouton).
le 'parseur' ou CSS renderer (je sais pas comment on appelle ça) va venir alors inspecter chaque objet (ce à quoi sert l'étoile dans la ligne suivante) dont la propriété est à true, et va alors appliquer le style précisé (le fond jaune).
Pour les sélecteurs CSS je ne suis pas sûr, je vais regarder.Code:*[mandatoryField="true"] { background-color: yellow }
Ca a l'air pourtant clair :
1)tu définis une propriété :2)Code:*[mandatoryField="true"] { background-color: yellow }
Tu crées donc une widget, et tu mets la propriété à true :Citation:
every widget whose mandatoryField Qt property is set to true would have a yellow background
On ne peut guère faire plus clair que ça ne l'est déjà :roll: .Code:
1
2 QLineEdit *nameEdit = new QLineEdit(this); nameEdit->setProperty("mandatoryField", true);
G.
J'étais en train de me dire : les style-sheets sont-t-elle dans les programmes ou dans un fichier annexe ?
Deplus, j'ai un problème avec ce code :
Lorsque j'exécute mon programme, le bouton "button1" ne s'affiche que "normalement" (avec le thème XP);Code:
1
2
3
4
5
6
7
8
9 qApp->setStyleSheet("QPushButton#button1 { background-color: red;" "border-style: outset;" "border-width: 2px;" "border-radius: 10px;" "border-color: beige;" "font: bold 14px;" "min-width: 10em;" "padding: 6px; }");
Une idée ?
Merci de m'éclairer.
as tu bien mis le nom à ton boutton par setObjectName
http://qt.developpez.com/doc/4.4/qob...bjectname-prop
Merci infiniment (ça m'apprendra à sauter des lignes !)