Russian Qt Forum
Сентябрь 30, 2024, 20:20
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Вывести картинку с возможностью отмечать на ней координаты
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вывести картинку с возможностью отмечать на ней координаты (Прочитано 3680 раз)
n4ela
Гость
Вывести картинку с возможностью отмечать на ней координаты
«
:
Сентябрь 25, 2009, 01:46 »
Доброго времени суток.
Столкнулся с такой задаче: Надо выводить картинку(карту) и сделать так что бы на ней можно было бы отмечать мышкой города. Я так понимаю что надо в какой то элемент вывести картинку, в месте клика рисовать какой нибудь кружок, и считывать координаты клика.
Вот только не знаю в какой элемент лучше вывести картинку и как перехватывать клик с координатами. В какую сторону мне смотреть? И еще что делать если окно может быть развернуто на весь экран, ведь координаты будут браться относительно монитора, а не относительно этой картинки.
Записан
Pie_Jesu
Гость
Re: Вывести картинку с возможностью отмечать на ней координаты
«
Ответ #1 :
Сентябрь 25, 2009, 07:27 »
Для всех целей подойдет класс, наследованный от QWidget'а. С помощью класса QPainter и переопределения методов paintEvent(), resizeEvent() наносите на его поверхность карту. С помощью переопределения метода mousePressEvent() определяйте места нажатия на него и выполняйте соответствующие действия. Для решения проблемы с координатами следует завести свою систему координат, начало которой желательно должно совпадать с началом системы координат виджета (левый верних угол - (0,0)); и учитывать, что на экране видима не вся карта, а только ее кусок, который равен размеру виджета. Кликая в точке на виджете, и зная отображаемое смещение карты, можно точно определить точную точку и на самой карте. А с размерами окна справится сам виджет =)
«
Последнее редактирование: Сентябрь 25, 2009, 07:33 от Pie_Jesu
»
Записан
west
Гость
Re: Вывести картинку с возможностью отмечать на ней координаты
«
Ответ #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
Сообщений: 11445
Re: Вывести картинку с возможностью отмечать на ней координаты
«
Ответ #3 :
Сентябрь 25, 2009, 11:19 »
Напрашивается создать QGraphicsItem для каждого города, это сделает все отслеживания намного проще.
Если есть tools - почему бы их не использовать?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...