Таблицы стилей — это мощный механизм изменения внешнего вида любого виджета в Qt.
Краткое руководство см. здесь и здесь для получения справочного руководства. Таблицы стилей можно назначать с помощью редактора в Designer или передавать в виде строки с помощью setStylesheet(QString). Конечно, использовать Designer проще, потому что тогда вы можете увидеть, как будет выглядеть ваш виджет, прежде чем запускать его.
Теперь о вашей конкретной проблеме. QSplitter по сути является QFrame. Но он также включает в себя ручку - как вы знаете. Так что обычно это то, что обычно стилизовано.
Так, например, вы можете сделать это:
QSplitter::handle {
image: url(:/images/splitter.png);
}
Который предоставляет изображение для дескриптора сплиттера. Это немного похоже на то, что делается в Motif, где всегда отображается небольшая прямоугольная ручка, по которой пользователь может щелкнуть, чтобы переместить разделитель.
Немного поэкспериментировав, вы можете создать классную линию разделения для ручки.
QSplitter::handle {
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0,
stop:0 rgba(255, 255, 255, 0),
stop:0.407273 rgba(200, 200, 200, 255),
stop:0.4825 rgba(101, 104, 113, 235),
stop:0.6 rgba(255, 255, 255, 0));
image: url(:/images/splitter.png);
}
Или что-то более нарисованное, как этот.
QSplitter::handle:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #eee, stop:1 #ccc);
border: 1px solid #777;
width: 13px;
margin-top: 2px;
margin-bottom: 2px;
border-radius: 4px;
}
Для этого последнего мы специально переопределяем только горизонтальный разделитель из-за некоторых свойств, таких как margin-top и bottom, и ширина, которая должна быть другой, если мы меняем вертикальный разделитель.
Надеюсь это поможет. Как только вы начинаете играть с таблицами стилей, начинается настоящее веселье.
person
Liz
schedule
26.07.2011