Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: определение цвета точки по координатам на QGraphicsScene  (Прочитано 2084 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн katejim

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Доброго времени суток!
подскажите пожалуйста, а можно ли определить цвет по координатам на QGraphicsScene?
аналог пипетки на Painte

Оффлайн Maestro79

  • Новичок
  • *
  • Сообщений: 10
  • UbuntuStudio 12.04
    • Просмотр профиля
А что у вас на сцене отображается? Если картинка то проще (и правильней) пользовать QImage:
QRgb QImage::pixel ( int x, int y ) const; //узнать цвет пикселя
uchar * QImage::bits ();                   //манипулировать пикселями

который надо рисовать здесь:

void QGraphicsItem::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ) [pure virtual]
Если примитивы, то
QGraphicsItem * QGraphicsScene::itemAt ( const QPointF & position, const QTransform & deviceTransform ) const
вернет объект под мышкой и цвет можно узнать из его свойств которые нужно отдельно сохранить. Но это в простых случаях - градиент и антиалиасинг обработать будет сложно. Так что придется геометрию рисовать в QImage а дальше как выше. Как видите, эффективность еще та.

Вообще, знать цвет пикселя имеет смысл разве что для картинок и градиентов, так что используйте QImage. И не забывайте про mapFromScene / mapToScene .

Оффлайн katejim

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
спасибо!

 

Страница сгенерирована за 0.027 секунд. Запросов: 26.