crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Выделение QGraphicsItem.
Litkevich Yuriy
  опции профиля:
сообщение 26.12.2009, 19:27
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Пытаюсь разобраться как реализовать собственный стиль (вид) выделения графического элемента.
Мой элемент ни в какую не подсвечивается, даже стандартным прямоугольником.

Может кто-то уже реализовывал своё выделение?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 26.12.2009, 19:50
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

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




Репутация:   5  


а как ты его подсвечиваешь?

он по умолчанию клиппит все кроме себя, если рисовать в нем

я просто в пеинт евенте рисовал, отключая клип.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.12.2009, 19:57
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


разобрался, надо просто в функции рисования проверять, состояние элемента - ВЫДЕЛЕН/НЕВЫДЕЛЕН, и рисовать выделение если выделен:
    virtual void paint(QPainter* ppainter, const QStyleOptionGraphicsItem*, QWidget*)
    {
        const int offset = 3;
        
        ppainter->save();
        ppainter->setPen(QPen(Qt::blue, nPenWidth));
        ppainter->drawEllipse(-10, -10, 20, 20);
        if (isSelected()) {
            ppainter->setPen(QPen(Qt::black, 1, Qt::DashLine));
            ppainter->drawEllipse(-(10+offset), -(10+offset), 20+offset*2, 20+offset*2);
        }
        ppainter->restore();
    }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 23.12.2024, 22:15