Question

I ai un QCheckBox dans une configuration de grille définie en tant que telle:

self.isSubfactorCheckbox = QtGui.QCheckBox('Is &subfactor', self)

Par défaut, la case à cocher est à gauche du texte « est sous-facteur ». Je tiens à le déplacer à droite du texte.

J'ai essayé de jouer avec subcontrol-position, mais en vain.

self.isSubfactorCheckbox.setStyleSheet('QCheckBox::indicator{subcontrol-origin: content; subcontrol-position: top right;}')

déplace la case à cocher à droite (il est toujours à gauche du texte) mais il pousse le texte à droite et sur le bord de la fenêtre.

n'a pas aidé à déplacer le texte à droite:

self.isSubfactorCheckbox.setStyleSheet('QCheckBox::text{subcontrol-origin: content; subcontrol-position: top left; }')

Une solution serait de créer un QLabel et en ajoutant la case à sa droite, mais je n'ai pas pas trouvé un moyen de souligner les lettres dans un QLabel afin que l'utilisateur sait qui est la touche de raccourci. J'ai essayé préfixer avec des lettres et ou les envelopper dans les balises <u> </u>.

Je préfère encore utiliser seulement QLabel, mais comment pourrais-je passer la case située à droite du texte sans le texte se poussé dehors.

Était-ce utile?

La solution

A l'aide du mécanisme de jumelage. Réglez le QCheckBox à l'ami du QLabel. Après ce préfixe et soulignera le caractère de raccourci dans l'étiquette. Consultez la documentation de la QLabel de setBuddy.

Autres conseils

Encore plus facile ...

Utilisation de la méthode de QWidget.setLayoutDirection et le mettre contre RightToLeft LeftToRight

Vous pouvez le faire dans Designer ou par le code, il est une propriété ou tous les widgets.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top