qt pyqt pyqt4 qcheckbox

qt - Cambiar la posición de la casilla de verificación para un QCheckBox



pyqt pyqt4 (2)

Tengo un QCheckbox en un diseño de cuadrícula definido como tal:

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

Por defecto, la casilla de verificación está a la izquierda del texto "Is subfactor". Deseo moverlo a la derecha del texto.

He intentado jugar con la posición de subcontrol, pero fue en vano.

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

Esto mueve la casilla a la derecha (todavía está a la izquierda del texto) pero empuja el texto hacia la derecha y fuera del borde de la ventana.

Esto no ayudó a mover el texto a la derecha:

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

Una solución sería crear un QLabel y agregar la casilla a la derecha, pero no he encontrado una manera de subrayar las letras en una QLabel para que el usuario sepa cuál es la tecla de acceso directo. He intentado poner letras con prefijo y / o envolverlas en etiquetas <u> </u> .

Todavía preferiría usar solo QLabel, pero cómo cambiaría la casilla de verificación a la derecha del texto sin que se extrajera el texto.


Aún más fácil...

Utilice el método QWidget.setLayoutDirection y configúrelo RightToLeft vs. LeftToRight

Puede hacer esto en Designer o mediante código, es una propiedad o todos los widgets.


Usa el mecanismo buddy Establezca QCheckBox en el amigo de QLabel. Después de ese prefijo, se subrayará el carácter de acceso directo en la etiqueta. Ver la documentación del setBuddy de QLabel .