Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
U
6 марта 2018 г. 13:14

QGraphicsScene

Добрый день, можно ли разместить одну сену поверх другой, т.е. есть сцена на весь экран например и в правом верхнем углу другая сцена маленькая, и при нажатии на маленькую сцену она меняется местами с большой(которая на весь экран)

2

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


Например, вот так
widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QGraphicsScene>
#include <QResizeEvent>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();


private:
    Ui::Widget *ui;
    QGraphicsScene* m_firstScene;
    QGraphicsScene* m_secondScene;
    QGraphicsView* m_miniMapView;

protected:
    virtual void resizeEvent(QResizeEvent *event) override;

private slots:
    void on_pushButton_clicked();
};

#endif // WIDGET_H

widget.cpp
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    m_firstScene = new QGraphicsScene(this);
    m_firstScene->setBackgroundBrush(Qt::red);
    ui->graphicsView->setScene(m_firstScene);

    m_secondScene = new QGraphicsScene(this);
    m_secondScene->setBackgroundBrush(Qt::blue);
    m_miniMapView = new QGraphicsView(this);
    m_miniMapView->setFixedSize(200, 130);
    m_miniMapView->setScene(m_secondScene);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::resizeEvent(QResizeEvent *event)
{
    m_miniMapView->setGeometry(event->size().width() - 200, 0, 200, 130);
    QWidget::resizeEvent(event);
}

void Widget::on_pushButton_clicked()
{
    if (ui->graphicsView->scene() == m_firstScene)
    {
        ui->graphicsView->setScene(m_secondScene);
        m_miniMapView->setScene(m_firstScene);
    }
    else
    {
        ui->graphicsView->setScene(m_firstScene);
        m_miniMapView->setScene(m_secondScene);
    }
}

0
U

о круто, спасибо))

0

Ответы

Только авторизованные пользователи могут отвечать на форуме.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
m
19 декабря 2018 г. 10:37
maintumanov

Qt - Тест 001. Сигналы и слоты

  • Результат:68баллов,
  • Очки рейтинга-1
ИН
18 декабря 2018 г. 17:37
Игорь Носач

C++ - Тест 003. Условия и циклы

  • Результат:64баллов,
  • Очки рейтинга-1
ИН
18 декабря 2018 г. 17:22
Игорь Носач

C++ - Тест 003. Условия и циклы

  • Результат:35баллов,
  • Очки рейтинга-10
Последние комментарии
V
15 декабря 2018 г. 2:06
Vlad15007

Спасибо большое!Очень помогли!
11 декабря 2018 г. 21:01
Евгений Легоцкой

Не знаю, какой-там конкретно эффект и если честно не хочется fl studio ради того, чтобы посмотреть устанавливать, но из того, что увидел в интернете. Предполагаю, что то, что вы хотите с...
V
11 декабря 2018 г. 19:25
Vlad15007

Подскажите пожалуйста ( я новичок совсем)Можно ли организовать спрайт без этого окошка (как в fl studio fruity dance)?
11 декабря 2018 г. 15:06
Евгений Легоцкой

Что интересно, если написать так from <application_name>.<module_name> import <filename> ,то PyCharm сносит крышу, если разрабатываешь в рамках проекта приложение, ко...
11 декабря 2018 г. 14:52
Илья Чичак

Тут мне тоже есть что сказать=) Сами разрабы советуют импортировать следующим образом: from <application_name> import <module_name> Стоит избегать from . import &l...;
Сейчас обсуждают на форуме
М
19 декабря 2018 г. 8:43
Михаиллл

Здравствуйте.Говорят, если подключить ICU, то в SQLite появится регистронезависемый поиск.Я нашел скомпилированный ICU по этой ссылке https://www.npcglib.org/~stathis/blog/precompiled-...
18 декабря 2018 г. 19:58
Евгений Легоцкой

ну если у вас также будет внешний ключ на Serial, то получается следующая ситуация, Movie добавлен в Serial, а Serial имеет список Movie. То есть вам playlist как таковой вовсе не нужен....
R
18 декабря 2018 г. 12:25
RED_Spider

именно так, проблема в кодировке, а именно в отсутствии шрифтов на сервере, для меня вопрос решился в CentOS 7yum install curl cabextract xorg-x11-font-utils fontconfig всем спасибо за ...
U
18 декабря 2018 г. 10:39
Unreal_man

А вот этот коннект здесь и вовсе не нужен connect(ui->ok3, &QPushButton::clicked, this, &Widget::addToText); А как же без него? ============================== ...
m
17 декабря 2018 г. 19:03
melnik10

Спасибо, попробую!
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы