LINUX.ORG.RU

[qt4] загрузить картинку в QGraphicsView


0

0

Хотел сделать в своей проге что-то наподобие встроенного просмотра картинок (с зумом и прокруткой). Решил использовать для этого QGraphicsView, но что-то никак не получается хоть что-то в нем отобразить. Пробовал делать так:

    QGraphicsScene scene;
    scene.addPixmap(QPixmap("icons/1.jpg"));
    ui->graphicsView->setScene(&scene);
    ui->graphicsView->show();
Пробовал вместо картинки рисовать текст:

scene.addText(«Hello, world!»); (взял пример из документации).

Никакой реакции. Может быть я что-то упустил? Или не стоит трахать мозг и рисовать картинку на QWidget руками?

Qt-4.4.3, пишу в QtCreator 1.0

★★★★★

а если так: QGraphicsScene scene; QGraphicsPixmapItem * item = scene.addPixmap(QPixmap("icons/1.jpg")); item->show(); ui->graphicsView->setScene(&scene); ui->graphicsView->show();

?

indie
()

Создавай сцену динамически.
QGraphicsScene *scene = new QGraphicsScene;
scene->addPixmap(QPixmap("test.jpg"));
scene->addText("test");
ui->graphicsView->setScene(scene);

mlind ★★
()
Ответ на: комментарий от indie

>item->show();

на это ругается:
error: invalid use of incomplete type ‘struct QGraphicsPixmapItem’

nu11 ★★★★★
() автор топика
Ответ на: комментарий от mlind

>Создавай сцену динамически.

спасибо, уже лучше стало :)
теперь кружок и текст нормально отображаются, а картинка ни в какую.
http://s56.radikal.ru/i152/0904/99/2be6e082afa2.png

QGraphicsScene *scene = new QGraphicsScene;
scene->addEllipse(QRectF(-100.0, -100.0, 100.0, 100.0));
scene->addPixmap(QPixmap("editdelete.png"));
scene->addText("Hello, world!");
ui->graphicsView->setScene(scene);
ui->graphicsView->show();

nu11 ★★★★★
() автор топика
Ответ на: комментарий от nu11

отбой, разобрался. Дело было в пути к файлу. По документации путь можно писать относительный, и как оказалось это работает. Если запускать например из консоли. Но я запускал из конкверора и видимо рабочий каталог криво устанавливался, так что картинка тупо не загружалась. Сделал теперь абсолютный путь
qApp->applicationDirPath() +"/1.jpg"

Как говориться, check twice :)

nu11 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.