crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> [4.x.x] Вид курсора в QTreeView
panter_dsd
  опции профиля:
сообщение 14.4.2009, 16:39
Сообщение #1


Жаждущий знаний
***

Группа: Участник
Сообщений: 254
Регистрация: 1.1.2009
Из: Санкт-Петербург
Пользователь №: 474

Спасибо сказали: 32 раз(а)




Репутация:   3  


Как задать свой цвет для курсора? Отнаследовался от QTreeVew и переопределяю:

void  QFullView::drawRow ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
{
    QTreeView::drawRow(painter,option,index);
if(index.row()==currentIndex().row())
{
    painter->setPen(Qt::green);
    painter->drawRect(option.rect);
}
}


Но линия рисуется только слева и сверху от итема. После дня мозго....ва мучений понял, что за вид курсора отвечает стиль, и через палитру или стайлшит ничего не поменять. Как его все таки сделать нужным мне цветом?

Сообщение отредактировал panter_dsd - 14.4.2009, 16:42
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 14.4.2009, 21:11
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Это самое простое решение - отрисовать рамку через drawRect.

Я ради интереса (подсмотрев в исходниках), изваял следущее
    QStyleOptionFocusRect o;
    o.rect = option.rect.adjusted(1,1,-1,-1);
    o.state |= QStyle::State_KeyboardFocusChange;
    o.state |= QStyle::State_Item;
    o.backgroundColor = QColor(0,255,255); //red
    QApplication::style()->drawPrimitive(QStyle::PE_FrameFocusRect, &o, painter);


Тоже помоему неплохо :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- panter_dsd   [4.x.x] Вид курсора в QTreeView   14.4.2009, 16:39
- - igor_bogomolov   Под курсором подразумевается пунктирная рамка вокр...   14.4.2009, 16:59
- - panter_dsd   1. А можешь точнее вспомнить? 2. Сместил, не получ...   14.4.2009, 17:51
- - igor_bogomolov   На память не могу. Сейчас у себя попробую, чуть по...   14.4.2009, 18:08
- - panter_dsd   Проблема решена. void QFullView::drawRow ...   14.4.2009, 19:19
- - igor_bogomolov   Это самое простое решение - отрисовать рамку через...   14.4.2009, 21:11
- - panter_dsd   Тоже интересно. Вот только цвет почему-то нельзя з...   15.4.2009, 6:20
|- - SABROG   Цитата(panter_dsd @ 15.4.2009, 7:20) Тоже...   15.4.2009, 8:50
- - igor_bogomolov   Цитата(SABROG @ 15.4.2009, 9:50) А если ц...   15.4.2009, 9:01
- - panter_dsd   Скорее всего цвет подбирается контрастом к другому...   15.4.2009, 11:31
- - igor_bogomolov   Продублирую из prog.org Для Windows style, в исхо...   15.4.2009, 12:44
- - SABROG   Я посмотрел другие стили, там нет такого. Т.ч. лог...   15.4.2009, 13:56
- - igor_bogomolov   SABROG, если только запускать с родным стилем. А е...   15.4.2009, 14:56
- - SABROG   Конечно можно так проверять, но это в некоторой ст...   15.4.2009, 19:03
- - igor_bogomolov   SABROG, это все понятно. Можно просто проверить ун...   15.4.2009, 20:11
- - SABROG   Цитата(igor_bogomolov @ 15.4.2009, 21:11)...   15.4.2009, 20:32
- - igor_bogomolov   2 SABROG Цитата(SABROG @ 15.4.2009, 21:32...   15.4.2009, 23:08
- - igor_bogomolov   Цитата(SABROG @ 15.4.2009, 21:32) цвет в ...   16.4.2009, 14:20
- - SABROG   512 - превышает размеры байта   16.4.2009, 14:59
- - igor_bogomolov   Цитата(SABROG @ 16.4.2009, 15:59) 512 - п...   16.4.2009, 15:04


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


11 чел. читают эту тему (гостей: 11, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.11.2024, 0:35