Qt的QGroupBox样式设置

在Qt中,可以通过样式表(QSS)为QGroupBox定制外观。以下是一些常用的样式设置方法及示例:

基础样式设置

QGroupBox {
    border: 2px solid #FF0000;       /* 边框颜色 */
    border-radius: 5px;              /* 圆角半径 */
    margin-top: 1ex;                 /* 标题与内容间距 */
    font-weight: bold;               /* 标题字体加粗 */
    color: #333;                     /* 标题文字颜色 */
    background-color: #f0f0f0;       /* 背景色 */
}

QGroupBox::title {
    subcontrol-origin: margin;
    subcontrol-position: top left;   /* 标题位置 */
    padding: 0 3px;                  /* 标题内边距 */
}

高级设置示例

/* 带渐变色背景和阴影 */
QGroupBox {
    border: 2px solid qlineargradient(x1:0, y1:0, x2:1, y2:1,
                                    stop:0 #FFA07A, stop:1 #FF6347);
    border-radius: 8px;
    background-color: rgba(240, 255, 240, 80%);
    font: italic 12pt "微软雅黑";
    margin-top: 6px;
}

/* 标题样式 */
QGroupBox::title {
    color: #8B0000;
    subcontrol-origin: margin;
    subcontrol-position: top center;  /* 标题居中 */
    padding: 0 10px;
    background-color: #FFDAB9;
    border-radius: 3px;
}

/* 禁用状态 */
QGroupBox:disabled {
    border-color: #C0C0C0;
    color: #808080;
}

/* 包含的复选框样式 */
QGroupBox QCheckBox {
    color: #2F4F4F;
}

关键属性说明:

  1. 边框控制

    • border:设置边框样式(宽度、样式、颜色)
    • border-radius:设置圆角半径
  2. 标题定制

    • 使用::title子控件选择器
    • subcontrol-position:调整标题位置(top/center/bottom + left/right/center)
    • padding:控制标题文字与背景边界的距离
  3. 状态样式

    • :disabled:禁用状态
    • :checked:当GroupBox包含可选内容时的选中状态
  4. 背景效果

    • 使用qlineargradient创建渐变边框
    • 半透明背景(rgba颜色值)

注意事项:

  1. 使用margin-top控制标题与内容的间距
  2. 当需要精确控制布局时,建议结合布局管理器使用
  3. 复杂样式建议使用Qt Style Sheet Reference工具实时预览效果

可以通过setStyleSheet()方法应用样式:

groupBox->setStyleSheet("QGroupBox { border: 1px solid gray; }");

如果需要动态修改样式,可以使用选择器组合:

/* 鼠标悬停效果 */
QGroupBox:hover {
    border-color: #00FF00;
}

你可能感兴趣的:(Qt,样式表,qt,开发语言)