改变QGroupBox的内容背景
Change QGroupBox's content background
我想更改 QGroupBox 的背景,但是我只想更改内部背景(每个 QGroupBox 标题下方的深灰色阴影),如下所示:
我目前拥有的是
QGroupBox {
background-color: red;
border: 3px dashed black;
}
这样改变了整个QGroupBox的背景:
在 Qt 中有没有办法只改变 "interior box" 背景而不是整个容器?提前谢谢你。
您可以使用小部件的 "setStyleSheet" 功能来完成。
获取内部分组框对象。并使用 "setStyleSheet" 函数设置背景颜色。
伪代码:
QGroupBox *innerGBox = new QGroupBox();
innerGBox->setStyleSheet("background-color: red");
要了解有关程序化样式设置的更多信息,请参阅下文 link。
您需要多告诉 Qt 您想要的样式类型,特别是页边距。稍微尝试一下这段代码应该会给你想要的结果:
QGroupBox {
background-color: red;
border: 3px dashed black;
margin-top: 1ex; /* leave space at the top for the title */
}
QGroupBox::title {
subcontrol-origin: margin;
padding: 0 3px;
}
我猜这里涉及 2 个 QGroupBox,因为您的 post 并不清楚。或者是否有分组框和其他一些内部容器小部件?
无论哪种情况,您都应该能够使用如下样式表:
QGroupBox {
background-color: red;
margin-top:1em;
}
QGroupBox QGroupBox {
background-color: green;
}
QGroupBox::title {
subcontrol-origin: padding;
subcontrol-position: left top;
background: transparent;
margin-top: -2.5em;
}
这会给你以下结果:
您当然可以用任意小部件替换内部组框。
我想更改 QGroupBox 的背景,但是我只想更改内部背景(每个 QGroupBox 标题下方的深灰色阴影),如下所示:
QGroupBox {
background-color: red;
border: 3px dashed black;
}
这样改变了整个QGroupBox的背景:
在 Qt 中有没有办法只改变 "interior box" 背景而不是整个容器?提前谢谢你。
您可以使用小部件的 "setStyleSheet" 功能来完成。
获取内部分组框对象。并使用 "setStyleSheet" 函数设置背景颜色。
伪代码:
QGroupBox *innerGBox = new QGroupBox();
innerGBox->setStyleSheet("background-color: red");
要了解有关程序化样式设置的更多信息,请参阅下文 link。
您需要多告诉 Qt 您想要的样式类型,特别是页边距。稍微尝试一下这段代码应该会给你想要的结果:
QGroupBox {
background-color: red;
border: 3px dashed black;
margin-top: 1ex; /* leave space at the top for the title */
}
QGroupBox::title {
subcontrol-origin: margin;
padding: 0 3px;
}
我猜这里涉及 2 个 QGroupBox,因为您的 post 并不清楚。或者是否有分组框和其他一些内部容器小部件?
无论哪种情况,您都应该能够使用如下样式表:
QGroupBox {
background-color: red;
margin-top:1em;
}
QGroupBox QGroupBox {
background-color: green;
}
QGroupBox::title {
subcontrol-origin: padding;
subcontrol-position: left top;
background: transparent;
margin-top: -2.5em;
}
这会给你以下结果:
您当然可以用任意小部件替换内部组框。