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