crossplatform.ru

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

> QGraphicsItem отрисовка по нажатию кнопки вопрос...
AntonTatu
  опции профиля:
сообщение 27.11.2008, 12:37
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 27.11.2008
Пользователь №: 437

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




Репутация:   0  


Всем привет.!!! Вопрос такой:

Создаю собственный класс унаследованный от QGraphicsItem, определяю в нем методы:
MyItem::boundingRect(); MyItem::painter (рисую круг), MyItem::mousePressEvent, MyItem::mouseMoveEvent, MyItem::mouseReleaseEvent, разрешаю перетаскивать MyItem мышкой (setFlag(ItemIsMovable);

Создаю собственный класс унаследованный от QGraphicsView, определяю в нем метод:
MyView::mousePressEvent

определяю сцену....


При нажатии кнопки мышки срабытывает MyView::mousePressEvent и отрисовывает в точке соответствующего положения мышки кружочек, (при этом созданный Item записываю в список) можно их нарисовать много и перетаскивать, только понять не могу как сделать так что бы нельзя было рисовать в месте в котором уже кружок нарисован ?, т.е. не допустить наложения двух кружочков на сцене..

Пробовал в методе MyView::mousePressEvent сравнивать текущее положение мышки с положениями Item-ов записанными в список и в зависимости от этого рисовать или не рисовать новый, но к сожалению это не хороший путь в сохраненную точку невозможно попасть....

ЗЫ: прочитал свой вопрос.....:) если понять что же я хочу трудно, скажите попробую переформулировать...
ЗЫЫ: перерыл всю возможную литературу, ответа не нашел но есть же способ мне бы малинький примерчик.....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 27.11.2008, 15:31
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Тебе в памяти нужно будет держать регионы, или приводить к ним, а затем при клике получив точку клика проверять попал ты в регион или нет, это можно сделать с помощью: bool QRegion::contains ( const QPoint & p ) const.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AntonTatu
  опции профиля:
сообщение 27.11.2008, 15:38
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 27.11.2008
Пользователь №: 437

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




Репутация:   0  


Цитата(ViGOur @ 27.11.2008, 15:31) *
Тебе в памяти нужно будет держать регионы, или приводить к ним, а затем при клике получив точку клика проверять попал ты в регион или нет, это можно сделать с помощью: bool QRegion::contains ( const QPoint & p ) const.


а небольшой примерчик можно, в принципе как я уже сказал все выведенные на сцену итымы я засовываю в список, и могу получать их координаты, подозреваю что и регионы там тоже хранятся, как проверять попал я в регион или нет ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 25.4.2024, 8:44