Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kaibannez от Декабрь 08, 2009, 05:09



Название: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: kaibannez от Декабрь 08, 2009, 05:09
Есть дерево с иконками к каждому элементу. При выделении любого элемента иконка выделяется вместе с ним. Мне нужно избавиться от этого эффекта.

Пример:
Сейчас так:
(http://savepic.ru/972795.png)
Нужно так:
(http://savepic.ru/971771.png)

Вот код для обработки нажаия:
Код:
void Navigator::treeClicked(QTreeWidgetItem *itm, int)
{
        // other code
        qDebug() << itm->icon(0).isNull();
}

Пытался менять иконку на любую другою после нажатия- эффекта нет (в смысле, он такой как на первом скриншоте). Код выше показывает как я нахожу конку текущего элемента и то, что это происходит успешно.

Собственно, вопрос- возможно ли достижение необходимого мне эффекта в Qt?
P.S. Наверняка, где-то есть флаг, который хотя бы позволяет не закрашивать прозрачную область на иконке. Но найти ничего подобного мне не удалось.


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: panAlexey от Декабрь 08, 2009, 09:56
Хороший вопрос, присоединяюсь. Мне тоже не нравится, когда выделяется с иконкой.
Она становится "не съедобной".
Можно сказа баго...


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: kaibannez от Декабрь 12, 2009, 22:53
Ни у кого нет ответа или идей?


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: spectre71 от Декабрь 13, 2009, 00:31
Ни у кого нет ответа или идей?

Однозначно, проблема решается через своего делегата! Хотя может и не просто.


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: Danila_Bagrofff от Декабрь 14, 2009, 09:20
Спектр, то есть ты предлагаешь самому реализовать подсветку?

А, может, вообще убрать выделение, указав NoSelection, и наоборот потдкрасить только текст, переопределив clicked?...


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: spectre71 от Декабрь 14, 2009, 09:25
Спектр, то есть ты предлагаешь самому реализовать подсветку?

А, может, вообще убрать выделение, указав NoSelection, и наоборот потдкрасить только текст, переопределив clicked?...

Преопределение "clicked" не поможет. Делай через делегат.


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: kaibannez от Декабрь 16, 2009, 09:50
Из предложенного, подсветка наиболее прямое решение (как я себе могу представить реализацию).
Но, по моему есть более прямое решение. Например, для иконок обычно можно указать иконку для всех состояний. Например, в Qt Creator в дизайнере для иконки главного окна WindowIcon можно указать иконки для всех состояний (Normal Off, Normal On, Disable, ...Selected...). Как это сделать для иконки в дереве я не знаю. В общем то, вопрос в этом.


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: SABROG от Декабрь 16, 2009, 10:21
Я этот вопрос задавал еще в 2007 году, тогда я решил даже не заморачиваться: http://lists.trolltech.com/qt-interest/2007-04/thread00052-0.html


Название: Re: TreeWidgetItem: Нужна невыделенная иконка узла при выделении узла
Отправлено: kaibannez от Декабрь 18, 2009, 07:46
Мда. Это действительно малость не соответствует гимну Qt. Могу я попросить  у вас, SABROG, кусочек кода, реализующий переопределение (вы ведь так сделали, на сколько я понял)?