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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 15.4.2009, 19:03
Сообщение #2


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

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Конечно можно так проверять, но это в некоторой степени не правильно:

    QColor color = Qt::red;
    QString stylename = qApp->style()->objectName().toLower();
    if (stylename == QLatin1String("windows") || stylename == QLatin1String("windowsmobile"))
    {
        QRgb rgb = color.rgb();
        rgb = (rgb & 0xff00ffff) | (((qRed(rgb) ^ 0xff) & 0xff) << 16);
        rgb = (rgb & 0xffff00ff) | (((qGreen(rgb) ^ 0xff) & 0xff) << 8);
        rgb = (rgb & 0xffffff00) | ((qBlue(rgb) ^ 0xff) & 0xff);
        color.setRgb(rgb);
    }
    ...
    o.backgroundColor = color;


Сообщение отредактировал SABROG - 15.4.2009, 19:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 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


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


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




RSS Текстовая версия Сейчас: 18.12.2024, 5:00