Извините, если мой вопрос несколько расплывчатый.Прошло несколько лет с тех пор, как я что-то делал с Qt, и тогда я никогда не делал ничего необычного.То, о чем я прошу ниже, - это лишь некоторые общие рекомендации, какие классы следует использовать.Я стараюсь не лаять неправильное дерево с самого начала.
Ситуация: Я пишу программу на основе Qt, в которой мне нужно отобразить несколько большую (скажем, 5000x5000) растровое изображение.Пользователь должен иметь возможность (быстро) увеличивать и уменьшать масштаб и перемещаться по изображению, как, например, карты Google.Пока что это не очень отличается от примера Qt ImageViewer , за исключением, возможно, требования, что масштабирование происходит быстро.Однако мне нужно нарисовать порядка 50 тыс. Простых геометрических фигур (скажем, кругов) поверх изображения, и я могу добавить и удалить некоторые из них простым способом.Круги должны иметь одинаковый размер, независимо от уровня масштабирования, и поэтому должны либо перерисовываться всякий раз, когда пользователь увеличивает масштаб, либо должны рисоваться с векторной графикой.Думайте о кругах как аннотации карты.Они должны выглядеть одинаково на любом уровне масштабирования, а также вести себя хорошо в отношении панорамирования.
Я думаю, мой вопрос двоякий:
- Может ли Qt рисовать векторную графику поверхрастровое изображение?
- В общем, какие классы мне следует рассмотреть для вышеупомянутого?
Заранее спасибо.Я сам не люблю отвечать на смутные вопросы, но, возможно, кто-то, имеющий опыт работы с графическими возможностями Qt, может ответить.