Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change checkbox position for a QCheckBox

I have a QCheckbox in a grid layout defined as such:

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

By default the checkbox is to the left of the "Is subfactor" text. I wish to move it to the right of the text.

I've tried playing around with subcontrol-position but to no avail.

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

This moves the checkbox to the right (it's still on the left of the text) but it pushes the text to the right and out of the window's edge.

This didn't help to move the text to the right:

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

A solution would be creating a QLabel and adding the checkbox on its right but I don't haven't found a way to underline letters in a QLabel so that the user will know which is the shortcut key. I've tried prefixing letters with & or wrapping them in <u> </u> tags.

I'd still prefer to use only a QLabel, but how would I switch the checkbox to the right of the text without the text getting pushed out.

like image 436
Virgiliu Avatar asked Nov 28 '22 18:11

Virgiliu


1 Answers

Even easier...

Use the QWidget.setLayoutDirection method and set it RightToLeft vs. LeftToRight

You can do this in Designer or through code, it is a property or all widgets.

like image 180
Eric Hulser Avatar answered Dec 05 '22 17:12

Eric Hulser