Qt 更改QCheckBox的复选框位置
我在网格布局中有一个QCheckbox,定义如下:Qt 更改QCheckBox的复选框位置,qt,pyqt,pyqt4,qcheckbox,Qt,Pyqt,Pyqt4,Qcheckbox,我在网格布局中有一个QCheckbox,定义如下: self.isSubfactorCheckbox = QtGui.QCheckBox('Is &subfactor', self) 默认情况下,复选框位于“is子因素”文本的左侧。我想把它移到案文的右边 我试过摆弄一下分包商的位置,但没用 self.isSubfactorCheckbox.setStyleSheet('QCheckBox::indicator{subcontrol-origin: content; subcontrol
self.isSubfactorCheckbox = QtGui.QCheckBox('Is &subfactor', self)
默认情况下,复选框位于“is子因素”文本的左侧。我想把它移到案文的右边
我试过摆弄一下分包商的位置,但没用
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中的字母下划线的方法,以便用户知道哪个是快捷键。我试过在字母前面加上&或用
标签包装它们
我仍然希望只使用QLabel,但如何将复选框切换到文本右侧,而不将文本推出。使用好友机制。将QCheckBox设置为QLabel的伙伴。在该前缀之后&将在标签中的快捷方式字符下面加下划线。请参阅。的文档,更容易 使用QWidget.setLayoutDirection方法并将其设置为RightToLeft vs.LeftToRight
您可以在Designer中或通过代码执行此操作,这是一个属性或所有小部件。此解决方案的唯一问题是,所有文本都正确对齐。要使其看起来像更新gui上的复选框/切换开关,您需要使用QFormLayout和
QFormLayout::addRow(新QLabel(“Text”),复选框)
。