QGraphicsItem отрисовка по нажатию кнопки вопрос... |
Здравствуйте, гость ( Вход | Регистрация )
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, 16:45
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Ну например:
надеюсь идея понятна...
Сообщение отредактировал ViGOur - 27.11.2008, 16:47 |
|
|
AntonTatu |
28.11.2008, 1:18
Сообщение
#3
|
Студент Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата надеюсь идея понятна... идея совершенно неправильная как оказалось... вот что написано у Макса Шлее: "Класс QGraphicsitem предоставляет возможность определения столкновений элементов. Это задача выполняется с помощью методов QGraphics:: shape и QGraphicsitem:: collideswith Если вы создаете свой класс элемента, то для определения столкновенЂий необходимо будет перезаписать метод QGraphicsitem:: shape. Этот метод должен возвращать форму элемента в локальных координатах. Благодаря этому класс QGraphicsitem будет самостоятельно производить распознавание столкновений. " неужели никто не сталкивался с такой проблемой !!! очень нужно.... долго уже мучаюсь...... маленький примерчик плиииз..... |
|
|
Текстовая версия | Сейчас: 19.4.2024, 3:35 |