Здравствуйте, гость ( Вход | Регистрация )
Yaroslav | Дата 28.2.2011, 16:35 |
Если уже было решение этой проблемы пожалуйста напишите.. У меня появился вариант решения этой проблемы через mouseHover, только не знаю или он правельный...( |
|
ViGOur | Дата 28.11.2008, 11:01 |
а вот с этим уже играться нужно и читать, я пока не заморачивался... | |
AntonTatu | Дата 28.11.2008, 1:18 |
Цитата надеюсь идея понятна... идея совершенно неправильная как оказалось... вот что написано у Макса Шлее: "Класс QGraphicsitem предоставляет возможность определения столкновений элементов. Это задача выполняется с помощью методов QGraphics:: shape и QGraphicsitem:: collideswith Если вы создаете свой класс элемента, то для определения столкновенЂий необходимо будет перезаписать метод QGraphicsitem:: shape. Этот метод должен возвращать форму элемента в локальных координатах. Благодаря этому класс QGraphicsitem будет самостоятельно производить распознавание столкновений. " неужели никто не сталкивался с такой проблемой !!! очень нужно.... долго уже мучаюсь...... маленький примерчик плиииз..... |
|
ViGOur | Дата 27.11.2008, 16:45 |
Ну например: надеюсь идея понятна... |
|
AntonTatu | Дата 27.11.2008, 15:38 |
Тебе в памяти нужно будет держать регионы, или приводить к ним, а затем при клике получив точку клика проверять попал ты в регион или нет, это можно сделать с помощью: bool QRegion::contains ( const QPoint & p ) const. а небольшой примерчик можно, в принципе как я уже сказал все выведенные на сцену итымы я засовываю в список, и могу получать их координаты, подозреваю что и регионы там тоже хранятся, как проверять попал я в регион или нет ? |
|
ViGOur | Дата 27.11.2008, 15:31 |
Тебе в памяти нужно будет держать регионы, или приводить к ним, а затем при клике получив точку клика проверять попал ты в регион или нет, это можно сделать с помощью: bool QRegion::contains ( const QPoint & p ) const. | |
AntonTatu | Дата 27.11.2008, 15:10 |
мне нужно каким то образом делать вот что: при нажатии на кнопку мышки определять что я нажал не на пустое поле а на кружок, и не рисовать рядом новый, соответственно при нажатии на пустое поле нарисовать кружок...., как рисовать я знаю, как определить что под мышкой находится кружок ? |
|
ViGOur | Дата 27.11.2008, 14:56 |
Если я тебя правильно понял, то тебе нужно поиграться с регионами, на наличие пересечений... | |
AntonTatu | Дата 27.11.2008, 12:37 |
Всем привет.!!! Вопрос такой: Создаю собственный класс унаследованный от QGraphicsItem, определяю в нем методы: MyItem::boundingRect(); MyItem::painter (рисую круг), MyItem::mousePressEvent, MyItem::mouseMoveEvent, MyItem::mouseReleaseEvent, разрешаю перетаскивать MyItem мышкой (setFlag(ItemIsMovable); Создаю собственный класс унаследованный от QGraphicsView, определяю в нем метод: MyView::mousePressEvent определяю сцену.... При нажатии кнопки мышки срабытывает MyView::mousePressEvent и отрисовывает в точке соответствующего положения мышки кружочек, (при этом созданный Item записываю в список) можно их нарисовать много и перетаскивать, только понять не могу как сделать так что бы нельзя было рисовать в месте в котором уже кружок нарисован ?, т.е. не допустить наложения двух кружочков на сцене.. Пробовал в методе MyView::mousePressEvent сравнивать текущее положение мышки с положениями Item-ов записанными в список и в зависимости от этого рисовать или не рисовать новый, но к сожалению это не хороший путь в сохраненную точку невозможно попасть.... ЗЫ: прочитал свой вопрос..... если понять что же я хочу трудно, скажите попробую переформулировать... ЗЫЫ: перерыл всю возможную литературу, ответа не нашел но есть же способ мне бы малинький примерчик..... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 4:30 |