8

我有一个很奇怪的问题。我有一个QWidgetQHBoxLayout它。布局包含两个QLabels. 我想为整个小部件设置一个边框。我正在使用样式表:

 "padding: 10px;"
 "border-style: solid;"
 "border-width: 3px;"
 "border-radius: 7px;"

但问题是:这种风格适用于两个 QLabels 并且完全破坏了布局。我只需要外部窗口有边框,而不是标签。有任何想法吗?

提前致谢!

4

2 回答 2

9

采用

.QWidget
{
    // your css rules
}

.QWidget 将仅将 CSS 应用于完全为 QWidget 且不继承 QWidget 的类

您还可以使用对象名称选择器

#YourWidgetObjectName
{
    // your css rules
}

两种解决方案都不会将规则应用于其他小部件(即使是里面的小部件)

于 2011-10-25T09:55:13.863 回答
7

样式表将递归工作。如果您将样式表应用于应用程序,它将应用于其中的所有小部件。因此,您可能必须指定要应用的样式表?

逻辑应该是这样的..

QHBoxLayout#layoutbox {
     background-color: red;
     border-style: outset;
     border-width: 2px;
     border-radius: 10px;
     border-color: beige;
     font: bold 14px;
     min-width: 10em;
     padding: 6px;
 }
于 2011-10-25T09:42:02.230 回答