Qt: Как показать значок, когда элемент выбран - PullRequest
2 голосов
/ 27 января 2010

У меня есть QListWidget, содержащий элементы, которые имеют значки, и когда элементы выбраны, значок просто выделяется. Есть ли способ предотвратить это? Я не могу использовать таблицы стилей, потому что это для встроенного приложения, и их включение занимает слишком много места. спасибо

Ответы [ 2 ]

1 голос
/ 27 января 2010

Полагаю, когда вы говорите «Highlithed out», вы имеете в виду, что цвета значков плохо отображаются при выделении линии, и поэтому вы не можете правильно видеть значок ...

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

Пример:

QIcon MyIcon(":/images/foo");
MyIcon.addFile(":/images/bar", QSize(...), QIcon::Selected);

Вы можете легко попробовать в QtDesigner и увидеть результаты ...

Надеюсь, это немного поможет!

0 голосов
/ 28 января 2010

Конечно, рисование на черно-белом экране представляет свои проблемы.

Звучит так, будто вы просто хотите изменить внешний вид интерфейса, а не какую-либо функциональность. Если это так, то класс QItemDelegate (или QStyledItemDelegate) почти наверняка вам нужен. В частности, функция drawDecoration выглядит так, как будто она используется для рисования значка, а параметры стиля должны включать информацию о том, выбран ли он. Простейшим решением было бы переопределить эту функцию, установить для выбранного флага в параметрах значение false, а затем передать его функции родителя.

...