ИВ
Иван ВолковJune 2, 2021, 9:30 a.m.
Как изменить цвет выбранных элементов QListView ?
Добрый день.
Был уверен что это можно сделать с помощью QSS в редакторе форм, но не вышло. Очень хочется чтобы цвет элемента всегда был blue, не зависимо от темы рабочего стола.
Пробовал сделать у QListView такой стиль:
background-color: rgb(230, 230,230 ); border: 0px solid white; QListView::item:selected {background-color:blue; color: white;}
Даже прямо указывать имя объекта:
background-color: rgb(230, 230,230 ); border: 0px solid white; listView::item:selected {background-color:blue; color: white;}
Тут listView это имя объекта QListView.
И ничего - все как было.
Начинаю подозревать, что это в целом не верный подход. Хотя не понятно почему.
Как это в принципе реализуется? Может есть статья где описано решение такой задачи?

We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
АТ
- Алексей Толчинский
- Sept. 26, 2023, 9:06 p.m.
C++ - Тест 003. Условия и циклы
- Result:92points,
- Rating points8
L
- Leo
- Sept. 26, 2023, 6:32 p.m.
C++ - Test 001. The first program and data types
- Result:93points,
- Rating points8
Last comments

IscanderCheSept. 13, 2023, 4:11 p.m.

Evgenii LegotckoiSept. 6, 2023, 2:18 p.m.
AC
Qt/C++ - Lesson 048. QThread — How to work with threads using moveToThread Я поясню свой вопрос. Выше я писал "Почему же в методе MainWindow::on_write_1_clicked() Можно обращаться к методам exampleObject_1? Разве могут взаимодействовать объекты из разных…
Andrei CherniaevSept. 5, 2023, 10:37 a.m.
QML - Lesson 004. Signals and Slots in Qt QML Здравствуйте! Прекрасный сайт, отличные статьи. Не хватает только готовых проектов для скачивания. Многих комментариев типа appCore != AppCore просто бы не было )))

NSProjectAug. 24, 2023, 8:40 p.m.
Now discuss on the forum

IscanderCheSept. 17, 2023, 4:24 p.m.

NSProjectSept. 17, 2023, 3:49 p.m.

BlinCTSept. 15, 2023, 7:35 p.m.

IscanderCheSept. 8, 2023, 7:07 p.m.

Evgenii LegotckoiSept. 6, 2023, 1:35 p.m.
НА сколько помню там нужно задавать стили делегату
Так и оказалось, вот решение, может кому-то поможет.
Делаем класс делегата
и назначаем делегат в виджете
Смысл в том, что при выборе строки в списке, вокруг неё всегда будет рисоваться синий квадрат, тупо пайнтером.
Осталось понять, как менять цвет шрифта при выборе.
Оказалось есть подводные камни, в пятницу попробовал скомпилировать все это на Astra Linux.
Если под виндой за все отвечает делегат, то в линуксе он меняет только цвет оконтовки выделенного текста и его шрифт, другими словами имеют значения только вот эти строки
pPainter->setBrush(QBrush(Qt::green)); - тупо не срабатывает. Чтобы еще и прямоугольник выделения окрашивался в нужный цвет, необходимо все же добавить в стиль QListView строчку
Вот такой вот у Qt своеобразная кросптотформенность.