Qt 4: Как установить внешнюю границу для QWidget так, чтобы ее внутренние виджеты не были затронуты?

у меня довольно странная проблема. У меня есть QWidget С QHBoxLayout на нем. Макет содержит два QLabels. Я хочу установить границу для всего этого виджета. Я использую таблицу стилей:

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

но вот проблема: этот стиль применяется как к QLabels, так и полностью нарушает макет. Мне нужно только внешнее окно, чтобы иметь границу, а не ярлыки. Есть идеи?

спасибо заранее!

2 ответов


использовать

.QWidget
{
    // your css rules
}

.QWidget будет применять CSS только к классам, которые точно QWidget и не наследуют QWidget

вы также можете использовать селектор имен объектов

#YourWidgetObjectName
{
    // your css rules
}

оба решения не будут применять правила к другим виджетам (даже внутри)


таблицы стилей будут работать рекурсивно. Если вы примените таблицу стилей к приложению, она будет применена ко всем виджетам в нем. Таким образом, вам может потребоваться указать, к чему вы хотите применить таблицу стилей?

логика должна быть примерно такой..

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;
 }