Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: lasker от Июль 15, 2009, 11:46



Название: цвет выделенной строки в QTableView
Отправлено: lasker от Июль 15, 2009, 11:46
Добрый день! Кто может подсказать, как сделать так, чтобы цвет выделенной строки не изменялся, а просто было видно  что строка активна (типа пунктира вокруг)?


Название: Re: цвет выделенной строки в QTableView
Отправлено: lasker от Июль 16, 2009, 09:39
Это возможно??


Название: Re: цвет выделенной строки в QTableView
Отправлено: Rcus от Июль 16, 2009, 09:43
Можно все, вопрос только в необходимости данного подхода, например можно взять делегат и переписать QStyleOptionViewItem и при state & QStyle::State_Selected, только я не вижу смысла.


Название: Re: цвет выделенной строки в QTableView
Отправлено: Авварон от Июль 16, 2009, 09:55
а стайлшитом если??


Название: Re: цвет выделенной строки в QTableView
Отправлено: majatu от Июль 16, 2009, 14:16
Код:
void VisibleDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
        QStyleOptionViewItem myOption = option;
        QColor c=QColor(197, 255, 183);

        if (myOption.showDecorationSelected && (myOption.state & QStyle::State_Selected))
        {
                myOption.palette.setColor(QPalette::Highlight, c);
                myOption.palette.setColor(QPalette::HighlightedText, Qt::black);
        }

        QStyledItemDelegate::paint(painter, myOption, index);
}


и задавай чего хочешь