Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 更改QCheckBox的复选框位置_Qt_Pyqt_Pyqt4_Qcheckbox - Fatal编程技术网

Qt 更改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

我在网格布局中有一个QCheckbox,定义如下:

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”),复选框)