qt - 更改 QCheckBox 的复选框位置

标签 qt pyqt pyqt4 qcheckbox

我在网格布局中有一个 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/

相关文章:

c++ - 从 QDialog::layout 中删除子项

c++ - 无法从源代码构建 qt(对于 OpenCV)

python - 添加 QTextEdit 小部件作为中央小部件使主窗口不弹出,并且 showMaximize 导致计算机崩溃?

user-interface - 在 Windows 上选择 GUI(wxPy 与 pyQt)

c++ - 在 QLineEdit 中只写入浮点值

qt - QNetworkRequest::User 和 QNetworkRequest::UserMax 的区别

python - pyqt函数QIcon中返回 ":/filename"的路径

python - 在 PyQt 中迭代给定 QToolBar 对象上的 QAction 项?

python - 以列表形式访问字典

python - PyQT - 列出 QWidgets/Windows