Alex
Alex15 сентября 2016 г. 9:37

QGraphicsScene QGraphicsItem QgraphicsView

qgraphicsscene, QGraphicsView, Qt

Добрый день Евгений, изучаю ваши уроки про рисование в среде Qt. Пытаюсь написать игру сапёр, начал с графики и остановился. У меня получилось создать поля с минами фиксированного размера, но моя цель сделать так же как и в Сапёре который идёт в Windows 7. Хочется сделать виджет который будет динамически перерисовывать элементы при увеличении экрана. На сцену ложатся по координатам внутри этого прямоугольника элементы. Есть система координат сцены которая задаётся например

QGraphicsScene *m_scene;
m_scene->setSceneRect(0, 0, 220, 240);

То есть наша область для отрисовки указанна. Я подобрал размер исходя из минимального значения виджета. А как быть когда размер виджета меняется, нужно ли увеличивать размер сцены ? Повторюсь, моя цель при увеличении окна программы пропорционально увеличивать элементы не выходя за пределы разрешения экрана по длине и ширине. Жду вашего ответа спасибо.

Заготовку проекта приложил. 

drawing-1.zip

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

3
Evgenii Legotckoi
  • 15 сентября 2016 г. 10:39
  • Ответ был помечен как решение.

Добрый день, folax.

Да. Нужно менять и размер графической сцены. В первую очередь это необходимо для уменьшения графической сцены. Если мы добавляем элементы на графическую сцену вне её пределов, то графическая сцена увеличивается автоматически, а вот при удалении элементов, размер графической сцены не меняется. Поэтому лучше пересчитывать всё это добро, вместе с минными полями и т.д.

Но я бы порекомендовал бы реализовать эту игру на Qt QML. Честно, мороки меньше будет. Можно будет обойтись одним GridLayout, который будет спозиционирован якорями. И размеры всего будут изменяться автоматически при должной настройке.

    Alex
    • 15 сентября 2016 г. 13:03
    Спасибо Вам за хороший понятный ответ. Попробую дело довести до конца. И потом уже попробую сделать графику на QML, просто до него руки не дошли.
      Alex
      • 3 ноября 2016 г. 5:49

      Добрый день Евгений, окончил проект. Спасибо за ваши уроки, с них началась моя программа. Как будет время гляньте, скажите как человек с опытом справился с задачей или нет. Сейчас хочу освоить QML и сделать как вы говорили, графику на QML.

      drawing-2.zip

        Комментарии

        Только авторизованные пользователи могут публиковать комментарии.
        Пожалуйста, авторизуйтесь или зарегистрируйтесь
        AD

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Результат:50баллов,
        • Очки рейтинга-4
        m
        • molni99
        • 26 октября 2024 г. 1:37

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Результат:80баллов,
        • Очки рейтинга4
        m
        • molni99
        • 26 октября 2024 г. 1:29

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Результат:20баллов,
        • Очки рейтинга-10
        Последние комментарии
        i
        innorwall11 ноября 2024 г. 22:12
        Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
        i
        innorwall11 ноября 2024 г. 18:23
        QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
        i
        innorwall11 ноября 2024 г. 15:50
        Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
        i
        innorwall11 ноября 2024 г. 14:19
        Алгоритм сортировки кучей The role of raloxifene in preventing breast cancer priligy precio
        i
        innorwall11 ноября 2024 г. 13:55
        PyQt5 - Урок 006. Работа с QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
        Сейчас обсуждают на форуме
        i
        innorwall11 ноября 2024 г. 20:56
        добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
        i
        innorwall11 ноября 2024 г. 10:55
        Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
        9
        9Anonim25 октября 2024 г. 9:10
        Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
        ИМ
        Игорь Максимов3 октября 2024 г. 4:05
        Реализация навигации по разделам Спасибо Евгений!

        Следите за нами в социальных сетях