You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5可勾选QGroupBox(Fusion风格)标题区域间距调整咨询

可实现Fusion风格可勾选QGroupBox的间距调整

完全可以实现这三个间距调整需求,核心是通过自定义QSS样式表针对QGroupBox的子控件进行样式控制,结合Fusion风格的渲染规则即可达成。

具体实现方案

针对三个需求逐一对应样式设置:

  • 勾选指示器与组框标题间距10px:调整勾选指示器的右侧外边距,拉开与标题文本的距离
  • 标题与绿色区域顶部间距0px:设置标题区域的顶部内边距为0,消除默认顶部空隙
  • 标题右侧与绿色区域右侧间距0px:设置标题区域的右侧内边距为0,让标题文本紧贴绿色区域右边缘

完整示例代码

from PyQt5.QtWidgets import (QApplication, QWidget, QGroupBox, QVBoxLayout, QLabel)
import sys

class DemoWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setupUI()

    def setupUI(self):
        self.setWindowTitle("QGroupBox Spacing Adjustment")
        main_layout = QVBoxLayout(self)

        # 创建可勾选的QGroupBox
        checkable_group = QGroupBox("示例组框")
        checkable_group.setCheckable(True)
        group_layout = QVBoxLayout(checkable_group)
        group_layout.addWidget(QLabel("组框内容示例"))

        # 应用自定义样式表
        checkable_group.setStyleSheet("""
            QGroupBox::title {
                background-color: green;
                padding-top: 0px;
                padding-right: 0px;
            }
            QGroupBox::indicator {
                margin-right: 10px;
            }
        """)

        main_layout.addWidget(checkable_group)
        self.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    # 全局启用Fusion风格
    app.setStyle("Fusion")
    demo = DemoWidget()
    sys.exit(app.exec_())

关键说明

  1. 全局设置app.setStyle("Fusion")确保组框基于Fusion风格渲染,避免其他风格干扰样式效果
  2. QGroupBox::title的padding属性直接控制标题文本与背景区域的间距,设置padding-top和padding-right为0即可满足需求2、3
  3. QGroupBox::indicator的margin-right属性控制勾选指示器与标题文本的横向间距,设置为10px即可满足需求1

内容的提问来源于stack exchange,提问作者Chris P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:52:48