在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);
修改内容说明:
-
添加空行下移内容:
-
使用
layout->addItem(new QSpacerItem(1, 10, QSizePolicy::Minimum, QSizePolicy::Fixed), 0, 0);
在布局的第 0 行添加一个高度为 10 像素的空白区域,将内容整体下移。
-
-
调整控件位置:如果下面有控件要往后移
-
将控件的行索引从 0 开始调整为 1 和 2,确保内容在空白区域下方显示。
-
-
保持布局紧凑:
-
确保控件之间的间距合理,布局紧凑但不拥挤。
-
第二种方法:
在 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();
}
代码说明
-
设置样式表:
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;
:设置标题的背景色,使其与周围的区域区分开来。
-
-
其他样式调整:
-
border: 1px solid #888;
:设置QGroupBox
的边框样式。 -
border-radius: 4px;
:设置边框的圆角半径。 -
subcontrol-origin: margin;
:指定标题的子控件起源于边距。 -
subcontrol-position: top center;
:指定标题的位置为顶部居中。 -
padding: 0 5px;
:设置标题的内边距。
-
通过这些样式调整,可以使 QGroupBox
的标题看起来像是凸出来的,从而增强视觉效果