怎么把QGroupBox下QVBoxLayout和GridLayout的标题文字全部显示出来,往下移

在Boxlayout下: 

    QGroupBox *valveGroup = new QGroupBox("比例阀");
    QVBoxLayout *valveLayout = new QVBoxLayout(valveGroup);
    valveLayout->setSpacing(15); // 设置控件之间的间距
    valveLayout->addSpacing(10);//增加这一行代码

在Gridlayout下: 

// 吸液区域
auto createAspirateGroup = []() {
    QGroupBox *group = new QGroupBox("吸液");
    QGridLayout *layout = new QGridLayout(group);

    // 添加一个空行,用于将内容下移
    layout->addItem(new QSpacerItem(1, 10, QSizePolicy::Minimum, QSizePolicy::Fixed), 0, 0);

修改内容说明:

  1. 添加空行下移内容

    • 使用 layout->addItem(new QSpacerItem(1, 10, QSizePolicy::Minimum, QSizePolicy::Fixed), 0, 0); 在布局的第 0 行添加一个高度为 10 像素的空白区域,将内容整体下移。

  2. 调整控件位置如果下面有控件要往后移

    • 将控件的行索引从 0 开始调整为 1 和 2,确保内容在空白区域下方显示。

  3. 保持布局紧凑

    • 确保控件之间的间距合理,布局紧凑但不拥挤。

第二种方法:

在 Qt 中,可以通过设置 QGroupBox 的样式表(stylesheet)来调整标题的显示效果,使其看起来像是“凸出来”。这可以通过增加标题的顶部边距或调整字体大小来实现。

以下是一个示例,展示如何通过样式表调整 QGroupBox 的标题样式:

cpp复制

#include <QApplication>
#include <QGroupBox>
#include <QVBoxLayout>
#include <QWidget>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;
    window.setWindowTitle("QGroupBox Title Example");
    window.resize(400, 300);

    QVBoxLayout *layout = new QVBoxLayout(&window);

    // 创建一个 QGroupBox 并设置其标题
    QGroupBox *deviceGroupBox = new QGroupBox("设备控制", &window);

    // 设置 QGroupBox 的样式表,使标题看起来像是凸出来的
    deviceGroupBox->setStyleSheet(R"(
        QGroupBox {
            border: 1px solid #888;
            border-radius: 4px;
            margin-top: 20px; /* 增加顶部边距,使标题看起来凸出 */
        }
        QGroupBox::title {
            subcontrol-origin: margin;
            subcontrol-position: top center;
            padding: 0 5px;
            background-color: #f0f0f0; /* 设置标题背景色 */
        }
    )");

    layout->addWidget(deviceGroupBox);

    window.setLayout(layout);
    window.show();

    return app.exec();
}

代码说明

  1. 设置样式表

    cpp复制

    deviceGroupBox->setStyleSheet(R"(
        QGroupBox {
            border: 1px solid #888;
            border-radius: 4px;
            margin-top: 20px; /* 增加顶部边距,使标题看起来凸出 */
        }
        QGroupBox::title {
            subcontrol-origin: margin;
            subcontrol-position: top center;
            padding: 0 5px;
            background-color: #f0f0f0; /* 设置标题背景色 */
        }
    )");
    • margin-top: 20px;:增加 QGroupBox 的顶部边距,使标题看起来像是凸出来的。

    • background-color: #f0f0f0;:设置标题的背景色,使其与周围的区域区分开来。

  2. 其他样式调整

    • border: 1px solid #888;:设置 QGroupBox 的边框样式。

    • border-radius: 4px;:设置边框的圆角半径。

    • subcontrol-origin: margin;:指定标题的子控件起源于边距。

    • subcontrol-position: top center;:指定标题的位置为顶部居中。

    • padding: 0 5px;:设置标题的内边距。

通过这些样式调整,可以使 QGroupBox 的标题看起来像是凸出来的,从而增强视觉效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值