Добавление изображения в QtGraphicsView?

Привет, я посмотрел на другие вопросы и решения для этого, но ни один, кажется, не помогает для моей конкретной проблемы.

Я просто пытаюсь добавить к своему GraphicsView изображение, которое я добавил с помощью Qt designer

.CPP

void test::populateScene()
{
QImage image(":/images/myFile.png");
QGraphicsPixmapItem item(QPixmap::fromImage(image));
QGraphicsScene *scene = new QGraphicsScene;
scene->addItem(&item);
ui->graphicsView->setScene(scene);
}

У меня есть необходимые включения, но когда я нажимаю кнопку «Выполнить», программа сразу же выдает сообщение, которое не отвечает

у меня нет ошибок компилятора, просто нажмите Run, а затем получите test.exe is not responding

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

0

Решение

    QImage image(":/images/myFile.png");
QGraphicsScene *scene = new QGraphicsScene();
scene->addPixmap(QPixmap::fromImage(image));
scene->setSceneRect(0,0,image.width(),image.height());
ui->graphicsView->setScene(scene);

Никакое другое решение, которое я нашел здесь или где-либо еще для получения изображения в графическом представлении, не сработало, поэтому я опубликую это, чтобы помочь другим, теперь моя проблема решена, не стесняйтесь задавать вопросы

0

Другие решения

Вы должны разместить свой новый предмет в куче!

http://harmattan-dev.nokia.com/docs/library/html/qt4/qgraphicsscene.html#addItem

Добавляет или перемещает элемент и всех его детей к этой сцене. Эта сцена становится владельцем предмета.

Описание функции довольно понятно: для этого потребуется указатель, действительный для большей области действия вашей функции, чтобы она могла стать ее владельцем.

void test::populateScene()
{
QImage image(":/images/myFile.png");
QGraphicsPixmapItem *item = new QGraphicsPixmapItem(QPixmap::fromImage(image));
QGraphicsScene *scene = new QGraphicsScene;
scene->addItem(item);
ui->graphicsView->setScene(scene);
}
0

По вопросам рекламы [email protected]