Russian Qt Forum

Qt => Вопросы новичков => Тема начата: MaxoBik от Апрель 10, 2015, 18:52



Название: QtreeView+QAbstractItemDelegate и отрисовка кнопок expand/collapse
Отправлено: MaxoBik от Апрель 10, 2015, 18:52
Доброго времени суток, есть такой вопрос - реализовываю свой собственный QAbstractItemDelegate для QtreeView, в методе paint делегата отрисовываю внешний вид, но вот вопрос - как нарисовать expand/collapse иконки, т.е. сейчас вот так:

(http://i.imgur.com/JlqrBit.png?1)

а надо чтобы были иконки:

(http://i.imgur.com/MoGXwWS.png?1)

мне их необходима самостоятельно отрисовывать в методе paint? И также менять их состояния при событии collapse и expand элемента дерева, или возможно можно как то проще поступить? Буду признателен за любую помощь в этом вопросе.


Название: Re: QtreeView+QAbstractItemDelegate и отрисовка кнопок expand/collapse
Отправлено: Nidxogg от Апрель 11, 2015, 08:04
Qt style sheet не пробовали?


Название: Re: QtreeView+QAbstractItemDelegate и отрисовка кнопок expand/collapse
Отправлено: MaxoBik от Апрель 11, 2015, 10:32
Qt style sheet не пробовали?
Да, пробывал вместо самостоятельного paint-а использовать Qt style sheet CSS, но как закрасить первые row полностью?
Т.е. к примеру :
Код:
 this->setStyleSheet("QTreeView::item { background-color: yellow;  }")

окрашивает не строку полностью:
(http://i.imgur.com/HLnGeJz.png?1)

может есть какой-то правильные селекторы для этого?


Название: Re: QtreeView+QAbstractItemDelegate и отрисовка кнопок expand/collapse
Отправлено: Bepec от Апрель 11, 2015, 14:46
Правильно вы говорите неправильные селекторы.

Цитировать
The branches of the tree view can be styled using the ::branch subcontrol. The ::branch Sub-control supports the :open, :closed, :has-sibling and :has-children pseudo states.


Название: Re: QtreeView+QAbstractItemDelegate и отрисовка кнопок expand/collapse
Отправлено: MaxoBik от Апрель 11, 2015, 18:11
Правильно вы говорите неправильные селекторы.

Цитировать
The branches of the tree view can be styled using the ::branch subcontrol. The ::branch Sub-control supports the :open, :closed, :has-sibling and :has-children pseudo states.

Спасибо за совет, но я уже читал про селектор ::branch, возможно я не четко описал вопрос, вот что я пытаюсь сделать:
мне нужно выделить узлы что не имеют родителей, задать им background цвет и border, как здесь:
(http://i.imgur.com/JlqrBit.png?1)
но к этому необходимо показывать еще expand/collapse иконки. Со стилями во-первых я не нашел селекторов, которые выделяли бы только узлы без предков, во-вторых ::branch при задании background-color удаляет иконки  expand/collapse, поэтому придется еще и описывать правила стиля и для них, но опять же нет селекторов(или я их не нашел) для узлов у которых нет родителей, тем более для ::branch.


Название: Re: QtreeView+QAbstractItemDelegate и отрисовка кнопок expand/collapse
Отправлено: Bepec от Апрель 11, 2015, 18:37
Ничерта не понял, формулируйте свои мысли точнее :D