Frage

Ich habe ein QCheckBox in einem Raster-Layout als solche definiert:

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

Standardmäßig ist das Kontrollkästchen links von dem „Ist Nebenfaktor“ Text. Ich wünschte, es auf der rechten Seite des Textes zu bewegen.

Ich habe versucht, mit Substeuerelement-Position herumgespielt, aber ohne Erfolg.

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

Dies bewegt die Checkbox auf der rechten Seite (es ist immer noch auf der linken Seite des Textes), aber es drückt den Text nach rechts und aus den Rand des Fensters.

Das hat nicht geholfen, den Text nach rechts zu verschieben:

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

Eine Lösung wäre eine QLabel werden Erstellen und Hinzufügen des Kästchens auf seiner rechten Seite, aber ich habe nicht gefunden keine Möglichkeit zu unterstrichenen Buchstaben in einem QLabel so dass der Benutzer wissen, welche die Tastenkombination ist. Ich habe prefixing Briefe versucht, mit & oder sie in <u> </u> Tags gewickelt wird.

Ich würde immer noch nur ein QLabel verwenden möchten, aber wie würde ich die Checkbox auf der rechten Seite des Textes ohne den Text wechseln immer herausgedrückt wird.

War es hilfreich?

Lösung

Mit dem Buddy-Mechanismus. Stellen Sie die QCheckBox an den Buddy des QLabel. Nach diesem Präfix & das Tastenkürzel in dem Etikett unterstreichen. Lesen Sie die Dokumentation des QLabel des setBuddy .

Andere Tipps

Noch einfacher ...

Mit dem QWidget.setLayoutDirection Verfahren und Set es RightToLeft vs. LeftToRight

Sie können dies tun, in Designer oder durch Code, es ist eine Eigenschaft oder alle Widgets.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top