2014-02-20 3 views
0

Я пытаюсь применить stylesheet на моем пользовательском интерфейсе Qt. Он отлично работает на таких элементах, как QTreeWidget, QToolBar, QToolButton и т. Д. Он также применяется к QScrollBar с на представлении дизайнера, но когда я запускаю приложение, полосы прокрутки рисуются как родные полосы прокрутки Ubunut/Windows, не обращая внимания на мой разработанный стиль. Это происходит как в Ubuntu в Gnome-Shell, так и в xinit (без оконного менеджера) и Windows 7.QScrollBar не принимает стиль во время выполнения

В чем проблема?

ответ

0

Ну, я выбор QScrollBar с комбинацией ID-селекторы и Десцендент-селекторы, как это:

QTreeWidget#list QScrollBar:vertical { 

Он работал хорошо в Qt Designer, как предполагается. Но что-то, что кажется ошибкой, заставило его не работать во время выполнения, потому что во время выполнения Qt решает, что моя полоса прокрутки больше не является дочерней частью моего treewidget, и она распознает полосу прокрутки в качестве дочернего элемента родительского элемента treewidget, который делает его родным из treewidget (по крайней мере, его менеджер таблиц стилей делает это). Поэтому, выбирая его так:

QScrollBar:vertical { 
#centralWidget QScrollBar:vertical { // Where centralWidget is the parent of the treewidget 

решил проблему.

Смежные вопросы