Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kexby от Декабря 26, 2013, 12:56



Название: QTableView (полупрозрачное выделение строки)
Отправлено: kexby от Декабря 26, 2013, 12:56
День добрый.

Как сделать в QTableView полупрозрачное выделение текущей строки?

Необходимость в таком выделении возникла после того как, обнаружил что цвет ячеек, получаемый из модели методом data() для роли Qt::BackgroundRole, напрочь перекрывается цветом выделения строки. А хочется видеть всяческие раскраски даже для текущей строки. А если в модели будет 1 строка (т.е. она же текущая), то вообще цвет подкраски никогда не отобразится.
Исправить ситуцию с помощью стилей не получилось (назвачение цвета выделения с прозрачностью 30%):
Код:
myTableView->setStyleSheet("QTableView::item {selection-color: black; selection-background-color: rgba(30, 144, 255, 30%);}")
Так же обнаружил, что выделение в QTreeView и только в стиле WindowsVista работает именно так как мне хотелось (через выделение виден цвет ячеек).
Очень хотелось бы добится аналогичного поведения при выделении в QTableView.
Скрины и пример во вложениях.

P.S. Гуглил, но решения так и не нашел  :-\
Использовал Qt 4.8.5.


Название: Re: QTableView (полупрозрачное выделение строки)
Отправлено: Fregloin от Декабря 26, 2013, 18:07
Я не уверен на все 100 процетов, но думаю что придется пепреопреедлять метод отрисовки таблицы наследованием.
Еще как вариант поискать в установленной палитре цвет, отвечающий за выделение и изменить его.


Название: Re: QTableView (полупрозрачное выделение строки)
Отправлено: vintik от Декабря 27, 2013, 19:31
Я бы копал в сторону задания кастомного делегата для отображения ячеек таблицы