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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вывести картинку с возможностью отмечать на ней координаты  (Прочитано 3678 раз)
n4ela
Гость
« : Сентябрь 25, 2009, 01:46 »

Доброго времени суток.
Столкнулся с такой задаче: Надо выводить картинку(карту) и сделать так что бы на ней можно было бы отмечать мышкой города. Я так понимаю что надо в какой то элемент вывести картинку, в месте клика рисовать какой нибудь кружок, и считывать координаты клика.
Вот только не знаю в какой элемент лучше вывести картинку и как перехватывать клик с координатами. В какую сторону мне смотреть? И еще что делать если окно может быть развернуто на весь экран, ведь координаты будут браться относительно монитора, а не относительно этой картинки.
Записан
Pie_Jesu
Гость
« Ответ #1 : Сентябрь 25, 2009, 07:27 »

Для всех целей подойдет класс, наследованный от QWidget'а. С помощью класса QPainter и переопределения методов paintEvent(), resizeEvent() наносите на его поверхность карту. С помощью переопределения метода mousePressEvent() определяйте места нажатия на него и выполняйте соответствующие действия. Для решения проблемы с координатами следует завести свою систему координат, начало которой желательно должно совпадать с началом системы координат виджета (левый верних угол - (0,0)); и учитывать, что на экране видима не вся карта, а только ее кусок, который равен размеру виджета. Кликая в точке на виджете, и зная отображаемое смещение карты, можно точно определить точную точку и на самой карте. А с размерами окна справится сам виджет =)
« Последнее редактирование: Сентябрь 25, 2009, 07:33 от Pie_Jesu » Записан
west
Гость
« Ответ #2 : Сентябрь 25, 2009, 09:15 »

QPoint mapToGlobal ( const QPoint & pos ) const
QPoint mapFromGlobal ( const QPoint & pos ) const
QPoint mapToParent ( const QPoint & pos ) const
QPoint mapFromParent ( const QPoint & pos ) const
QPoint mapTo ( QWidget * parent, const QPoint & pos ) const
QPoint mapFrom ( QWidget * parent, const QPoint & pos ) const
Это все методы QWidget
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Сентябрь 25, 2009, 11:19 »

Напрашивается создать QGraphicsItem  для каждого города, это сделает все отслеживания намного проще.
Если есть tools - почему бы их не использовать?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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