Russian Qt Forum
Ноябрь 02, 2024, 07:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Редактирование элемента на qwidget и ещё кое-что.  (Прочитано 7593 раз)
luzhskij
Гость
« Ответ #15 : Февраль 05, 2016, 16:59 »

ну явно должно быть что-то типа scene->itemAtPoint() — туда параметром и скормить event->pos()

Это если по сцене клик. А если по qwidget? А если
Код:
painter.drawEllipse(5, 5, 5, 5)
Как отследить клик по этому объекту%)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Февраль 05, 2016, 17:04 »

Цитированием не злоупотребляйте
2) Как реализовать подобное с QWidget? Хорошо, переопределили
Код:
void mousePressEvent(QMouseEvent *event);
далее ткнули мышкой в элемент, получили, например,
Код:
event->pos()
Но что же дальше?
Дальше надо проверить все структуры данных которые соответствуют нарисованному. Напр есть полигон - проверить может event->pos() внутри него. Причем с учетом масштаба как он отрисован (там вместо полигона может быть аж точка). Причем с каким-то запасом - юзер не обязан точно попадать. И так для всего что нарисовано.

Дальнейший ход мыслей понятен: "ой, это так сложно, возьму-ка я готовый классик который за меня это все сделает, (напр QGraphicsScene)". Хотите - берите, но помните что говорила сестрица Аленушка
Цитировать
Не пей воды - козленочком станешь
Улыбающийся
Записан
luzhskij
Гость
« Ответ #17 : Февраль 08, 2016, 08:32 »

Да нет, звучит не сложно. Вот действительно же затупил, просто проверить координаты точки на совпадение с координатами объектов! Для выделения можно, например, маску сверху рисовать. А для удаления, коррекции цвета - изменять значения в структуре данных и потом перерисовывать рабочую область.
 
Благодарю за ответы. На пока что вопросы исчерпались=)
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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