r
Nov. 28, 2018, 3:30 p.m.

Scale GraphicsItems, zoom способы реализации

qt, gamedev, QGraphicItem, QGraphicsScene

Есть программа.
Ничего сложного в ней нет
QGraphicsScene
view = Q Graphics View - размером (800, 600)
view->setTransformationAnchor(QGraphicsView::AnchorUnderMouse)
При прокрутке колесом мыши вызывается
view->scale(1.05, 1.05) или view->scale(1/1.05, 1/1.05)

И несколько QGRaphicsRectItem
Предположим что есть country_map = QGRaphicsRectItem( )
размером (2000, 2000)
И mini_country_map = QGRaphicsRectItem( ) размером (200, 200)
Положение mini_country_map, произвольное — то есть имеется возможность поменять позицию элемента.

Как сделать так что бы при изменении размера сцены,mini_country_map - не менял своего размера, country_map - менял ?
Сейчас когда крутим колесом мыши меняется размер обоих объектов.

2

Do you like it? Share on social networks!

2
Evgenii Legotckoi
  • Nov. 28, 2018, 3:44 p.m.

Добрый день.

Вы бы хоть код нормально добавили. А то ссылки на ваши локальные файлы на вашем локальном компьютере в интернетах не открываются у других людей.

    r
    • Jan. 13, 2019, 9:41 p.m.
    • The answer was marked as a solution.
    1. Для того что бы QGraphicsItem не изменял свой размер при увеличениие сцены используют флаг:
    1. QGraphicsItem::ItemIgnoresTransformations

    Псевдокод:

    1. QGraphicsItem::setFlag(QGraphicsItem::ItemIgnoresTransformations, true)
    1. Для того что бы QGraphicsItem не изменял своего положения на экране при увеличениие сцены. Устаналиваем позицию с помощью метода

    1. QGraphicsView::mapToScene(int x, int y)
    .

    Псевдокод:

    1. Для начала координат (0, 0)
    2. QGraphicsItem::setPos(QGraphicsView::mapToScene(0, 0))

      Comments

      Only authorized users can post comments.
      Please, Log in or Sign up
      • Last comments
      • Evgenii Legotckoi
        March 9, 2025, 9:02 p.m.
        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
      • VP
        March 9, 2025, 4:14 p.m.
        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
      • ИМ
        Nov. 22, 2024, 9:51 p.m.
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
      • Evgenii Legotckoi
        Oct. 31, 2024, 11:37 p.m.
        Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
      • A
        Oct. 19, 2024, 5:19 p.m.
        Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html