我在网格布局中有一个 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,但是如何将复选框切换到文本右侧而不将文本推出。
最佳答案
更容易...
使用 QWidget.setLayoutDirection 方法并将其设置为 RightToLeft 与 LeftToRight
您可以在 Designer 中或通过代码执行此操作,它是一个属性或所有小部件。
关于qt - 更改 QCheckBox 的复选框位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3189951/