Russian Qt Forum
Ноябрь 25, 2024, 09:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
Программирование хотспотов на картинки
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Программирование хотспотов на картинки (Прочитано 8057 раз)
Разуев Максим
Гость
Программирование хотспотов на картинки
«
:
Июнь 21, 2007, 03:17 »
Может кто нибудь помочь с созданием хотспотов в Qt. Может кто занимался. А то я никогда не занимался. Пока понял только что надо использовать QGraphicsView. Но не понял как.
Записан
SABROG
Гость
Программирование хотспотов на картинки
«
Ответ #1 :
Июнь 21, 2007, 07:44 »
Ты хочешь сделать как здесь ?
http://www.htmlcodetutorial.com/images/images_famsupp_220.html
Записан
Разуев Максим
Гость
Программирование хотспотов на картинки
«
Ответ #2 :
Июнь 21, 2007, 07:52 »
Примерно.
Только средствами Qt и C++. А не HTML. Мне необходимо дать пользователю задать хотспоты на изображении. А потом обрабатывать нажатия на них.
Записан
SABROG
Гость
Программирование хотспотов на картинки
«
Ответ #3 :
Июнь 21, 2007, 08:11 »
Посмотри пример examples\graphicsview\elasticnodes
Там есть круглые точки, которые обрабатывают нажатие мышкой.
Записан
goer
Гость
Программирование хотспотов на картинки
«
Ответ #4 :
Июнь 21, 2007, 09:15 »
Graphicsview хорошо, но не всегда. Иногда связка QWidget & mouse...Event() & QPolygon оказывается не только мощнее, но и вообще единственным способом решить задачу.
Записан
Разуев Максим
Гость
Программирование хотспотов на картинки
«
Ответ #5 :
Июнь 24, 2007, 20:41 »
Примеры смотрел. Много подчерпнул по QGraphicsView. Но ничего по хотспотам.
Я прошу подсказать пример вообще как это организовать.
Можно кстати и пример по хотспотам и без Qt. Мне хотелось бы увидев основной принцип реализации.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Программирование хотспотов на картинки
«
Ответ #6 :
Июнь 24, 2007, 21:53 »
1. Создаешь набор полигонов QPoligon из точек, по полигону для каждого хотспота.
2. В виджете переопределяешь мышыные эвенты, которые будешь юзать (Press, Move, Click...) от задачи зависит.
3. В эвентах проверяешь для каждого полигона попадание в него курсора мыши, через например
bool QPolygon::containsPoint ( const QPoint & pt, Qt::FillRule fillRule ) const
4. С найденным полигоном делаешь то, что тебе нужно.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Разуев Максим
Гость
Программирование хотспотов на картинки
«
Ответ #7 :
Июнь 25, 2007, 15:01 »
Проблема в задании полигона интерактивно пользователем.
Пользователь должен как то выбрать область на картинке и указать это хотспот. По идее надо как то поверх картинки выводить тот самый QPolygon, мне хватит и QRect. Перемещать его по картинке стрелками и изменять размер например стрелки + Shift.
У меня проблема в том что я никогда не занимался рисованием на форме или в компоненте (Если бы был аналог TCanvas из C++Builder). Я хотел бы выяснить каким образом это можно реализовать. А то я хреново читаю по Английски, и с трудом разбираюсь в help по QGraphicsView.
добавлено спустя 3 часа 37 минут:
Немного продвинулся. Получаеися вывести прямоугольный контур поверх изображения. Но немогу понять как запретить прямоугольнику выходить за пределы изображения Я добавил QGraphicsRectItem в QGraphicsScene и установил для него флаг isMovable, т.е. прямоугольник свободно перетаскивается мышью. Но при перетаскивании он может вылазить за пределы изображения (setSceneRect я задаю раной размеру изображения, сцена теперь не увеличивается но на прямоугольник это не влияет).
добавлено спустя 7 часов 44 минуты:
Еще одна проблема. В QGraphicsItem есть функция type(). По идее она должна возвращать тип элемента, в assistent написано что для стандартных элементов она возвращает уникальное значение. Но нигде не указаны эти значения.
Может кто знает.
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...