Изменить положение флажка для QCheckBox - PullRequest
4 голосов
/ 07 июля 2010

У меня есть QCheckbox в макете сетки, определенном так:

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

По умолчанию флажок находится слева от текста «Является субфактором».Я хочу переместить его вправо от текста.

Я пытался поиграть с позицией субконтроля, но безрезультатно.

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

Это перемещает флажок вправо (он все еще слева от текста), но он выталкивает текст вправо и выходит за край окна.

Это не помогло переместить текст вправо:

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

Решением было бы создание QLabel и добавление флажка справа от него, но я не нашел способа подчеркнуть буквы в QLabel, чтобы пользователь знал, какая это клавиша быстрого доступа.Я пробовал ставить буквы с префиксом & или заключать их в теги <u> </u>.

Я бы все же предпочел использовать только QLabel, но как бы я поменял флажок справа от текста без текставыталкивать.

Ответы [ 2 ]

20 голосов
/ 13 августа 2012

Еще проще ...

Используйте метод QWidget.setLayoutDirection и установите его RightToLeft против LeftToRight

Вы можете сделать это в Designer или с помощью кода, это свойство или все виджеты.

4 голосов
/ 07 июля 2010

Используйте механизм приятеля.Установите QCheckBox на собеседника QLabel.После этого префикс & подчеркнет символ ярлыка в ярлыке.См. Документацию setBuddy QLabel .

...