更改QCheckBox的复选框位置

时间:2010-07-06 20:26:51

标签: qt pyqt pyqt4 qcheckbox

我在网格布局中有一个QCheckbox,如下所示:

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

默认情况下,复选框位于“Is subfactor”文本的左侧。我希望将其移到案文右侧。

我尝试过使用次控制位置,但无济于事。

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中加下划线字母,以便用户知道哪个是快捷键。我试过用&amp;前缀字母或将它们包装在<u> </u>标签中。

我仍然只想使用QLabel,但是如何在没有文本被推出的情况下将复选框切换到文本的右侧。

2 个答案:

答案 0 :(得分:20)

更容易......

使用QWidget.setLayoutDirection方法并将其设置为RightToLeft vs. LeftToRight

您可以在Designer中或通过代码执行此操作,它是属性或所有小部件。

答案 1 :(得分:4)

使用好友机制。将QCheckBox设置为QLabel的伙伴。在那个前缀&amp;将标记标签中的快捷方式字符。请参阅QLabel's setBuddy

的文档