Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Istrid от Август 15, 2012, 16:22



Название: Выделение элементов QtreeView
Отправлено: Istrid от Август 15, 2012, 16:22
Добрый день. Возникла следующая проблема: при выделении элементов QTreeView область бранчей закрашивается цветом специфическим для каждой системы (в Ubunutu зеленый, в Mac Os - синий). установкой QSS стиля

Код:
QTreeView:branch:selected { 
background-color: white ;
}

он меняется, да. Но он закрашивает тогда "треугольничек" закрытия/открытия элемента.
Вероятно нужно изменить системный стиль, но я не понял, как это можно сделать.

Картинка, того, о чем говорю:
(http://s1.ipicture.ru/uploads/20120815/m93YnBWt.png)


Название: Re: Выделение элементов QtreeView
Отправлено: Bepec от Август 15, 2012, 17:15
Насколько я помню, тебе достаточно лишь в stylesheet'e раскрашивать другим цветом "треугольничек".
Вот только одна проблема - я не помню как к нему обратиться :D


Название: Re: Выделение элементов QtreeView
Отправлено: fte от Август 15, 2012, 17:20
Можно можно обойти вот так:
view->setSelectionBehavior(QAbstractItemView::SelectRows);


Название: Re: Выделение элементов QtreeView
Отправлено: Istrid от Август 15, 2012, 18:43
Насчет треугольничка - сам впервые слышу, что к нему можно обратиться))
а view->setSelectionBehavior(QAbstractItemView::SelectRows); у меня и так стоит.
Заметил еще одну фичу - если убрать свойство Indentation (0 ему поставить) - то все в порядке. Это фон самого отступа, получается.


Название: Re: Выделение элементов QtreeView
Отправлено: Bepec от Август 15, 2012, 19:02
Сейчас уточнить не могу по обращению - новая система, ставлю как раз всё. Как смогу - отпишу, мб и обманываю :)


Название: Re: Выделение элементов QtreeView
Отправлено: lighting от Август 16, 2012, 08:45
http://doc.qt.nokia.com/4.7-snapshot/stylesheet-examples.html#customizing-qtreeview


Название: Re: Выделение элементов QtreeView
Отправлено: Bepec от Август 16, 2012, 09:05
Ага, не обманывал, есть такое :) Спасибо  lighting.

Код:
 QTreeView::branch:has-children:!has-siblings:closed,
 QTreeView::branch:closed:has-children:has-siblings {
         border-image: none;
         image: url(branch-closed.png);
 }

 QTreeView::branch:open:has-children:!has-siblings,
 QTreeView::branch:open:has-children:has-siblings  {
         border-image: none;
         image: url(branch-open.png);
 }


Название: Re: Выделение элементов QtreeView
Отправлено: Istrid от Август 16, 2012, 13:31
И правда, сработало) Спасибо большое)