首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改QGroupBox的内容背景

更改QGroupBox的内容背景
EN

Stack Overflow用户
提问于 2017-03-20 23:19:56
回答 3查看 8.9K关注 0票数 1

我想更改一个QGroupBox的背景,但是我只想更改内部背景(每个QGroupBox标题下面的较深的灰色阴影),如下所示:

我现在拥有的是

代码语言:javascript
复制
QGroupBox {
    background-color: red;
    border: 3px dashed black;
}

它会像这样改变整个QGroupBox的背景:

Qt中是否有一种只更改“内部框”背景而不是整个容器的方法?提前谢谢你。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-21 10:57:33

我想这里有两个QGroupBox‘s,因为从你的帖子中还不是很清楚。或者是否有一个组框和其他内部容器小部件?

在任何一种情况下,您都应该能够使用样式表,如下所示:

代码语言:javascript
复制
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;
}

这将给你以下结果:

当然,您可以将内部组框替换为任意小部件。

票数 3
EN

Stack Overflow用户

发布于 2017-03-21 06:38:22

您可以使用小部件的"setStyleSheet“函数来完成它。

获取内部组框对象。并使用"setStyleSheet“函数设置背景色。

伪码:

代码语言:javascript
复制
QGroupBox *innerGBox = new QGroupBox();

innerGBox->setStyleSheet("background-color: red");

要了解有关设置样式编程的更多信息,请参阅下面的链接。

http://doc.qt.io/qt-4.8/stylesheet-examples.html

票数 1
EN

Stack Overflow用户

发布于 2017-03-21 06:39:23

你需要告诉Qt更多关于你想要的风格,特别是边距。稍微玩一下这段代码,您应该会得到所需的结果:

代码语言:javascript
复制
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;
}

看一看样式表示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42915732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档