Russian Qt Forum

Qt => Вопросы новичков => Тема начата: olejOK17 от Март 31, 2015, 22:40



Название: Изображение на сцене
Отправлено: olejOK17 от Март 31, 2015, 22:40
Помогите, как добавить изображение на сцену?
В чем косяк? Почему ничего не отображается?

Код:
    QGraphicsScene *scene = new QGraphicsScene;
    scene->addPixmap(QPixmap(qApp->applicationDirPath()+"/cat.jpg"));
    ui->graphicsView->setScene(scene);
    ui->graphicsView->show();


Название: Re: Изображение на сцене
Отправлено: gil9red от Март 31, 2015, 23:41
Все добавляется, проверьте путь к картинке, она должна быть в той же папке, что и ехе-шник :)


Название: Re: Изображение на сцене
Отправлено: Day от Апрель 01, 2015, 10:20
JPG может не читаться без соответствующего плагина. Причем, молча.
Чтобы помочь делу, надо в папку программы поместить папку IMAGEFORMATS, а туда соответствующий плагин (qjpeg4.dll, например).
Возможно, есть и другой путь, но я, перебрав кой-какие, остановился на этом, самом тупом.


Название: Re: Изображение на сцене
Отправлено: Zerkin от Апрель 01, 2015, 11:00
JPG может не читаться без соответствующего плагина. Причем, молча.
Чтобы помочь делу, надо в папку программы поместить папку IMAGEFORMATS, а туда соответствующий плагин (qjpeg4.dll, например).
Возможно, есть и другой путь, но я, перебрав кой-какие, остановился на этом, самом тупом.

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


Название: Re: Изображение на сцене
Отправлено: olejOK17 от Апрель 01, 2015, 16:35
JPG может не читаться без соответствующего плагина. Причем, молча.
Чтобы помочь делу, надо в папку программы поместить папку IMAGEFORMATS, а туда соответствующий плагин (qjpeg4.dll, например).
Возможно, есть и другой путь, но я, перебрав кой-какие, остановился на этом, самом тупом.

Решал именно этим способом такую проблему. Насколько я знаю, это стандартные действия, ничего тупого в этом нету. Даже в экзамплах, вроде как, поступали так же.
  В какую конкретно папку IMAGEFORMATS помещать? Попробовал и в папку Qt и в папку с проектом. Ничего не выходит. Где я снова свернул не туда?


Название: Re: Изображение на сцене
Отправлено: gil9red от Апрель 01, 2015, 16:45
Сначала попробуйте вывести QImageReader::supportedImageFormats() там будут поддерживаемые форматы
Убедитесь что там есть jpg / jpeg


Название: Re: Изображение на сцене
Отправлено: Day от Апрель 01, 2015, 17:11
Сначала попробуйте вывести QImageReader::supportedImageFormats()
Да, забыл упомянуть. За одно проверьте ico.
При этом если поместить подпапку  IMAGEFORMATS, результат будет другой


Название: Re: Изображение на сцене
Отправлено: Отражение луны от Апрель 01, 2015, 19:06
 В какую конкретно папку IMAGEFORMATS помещать? Попробовал и в папку Qt и в папку с проектом. Ничего не выходит. Где я снова свернул не туда?
В папку с exeшником (в Вашем случае это папка, куда проект собирается, а не папка с .pro файлом). Вот только при корректно установленном на комп Qt приложение должно само найти все нужные ему либы, imageformast нужно копировать уже для использования приложения на другом компе, где нет Qt.


Название: Re: Изображение на сцене
Отправлено: Zerkin от Апрель 02, 2015, 09:46
Как уже указали выше, папку imageformats нужно положить рядом с исполняемым файлом.


Название: Re: Изображение на сцене
Отправлено: olejOK17 от Апрель 03, 2015, 15:06
 В какую конкретно папку IMAGEFORMATS помещать? Попробовал и в папку Qt и в папку с проектом. Ничего не выходит. Где я снова свернул не туда?
В папку с exeшником (в Вашем случае это папка, куда проект собирается, а не папка с .pro файлом). Вот только при корректно установленном на комп Qt приложение должно само найти все нужные ему либы, imageformast нужно копировать уже для использования приложения на другом компе, где нет Qt.
  Спасибо. А не подскажите как организовать масштабирование этого изображения на сцене в QGraphicsView?


Название: Re: Изображение на сцене
Отправлено: Zerkin от Апрель 03, 2015, 15:20
У QGraphicsItem'а есть соответствующие методы. setScale(qreal factor), например. У вьюва тоже есть интструменты для работы с масштабированием и трансформацией. Посмотрите документацию подробнее.


Название: Re: Изображение на сцене
Отправлено: billy4685 от Апрель 14, 2015, 00:47
Помогите, как добавить изображение на сцену?
В чем косяк? Почему ничего не отображается?

Код:
    QGraphicsScene *scene = new QGraphicsScene;
    scene->addPixmap(QPixmap(qApp->applicationDirPath()+"/cat.jpg"));
    ui->graphicsView->setScene(scene);
    ui->graphicsView->show();

Если у вас Windows, то попробуйте вот так:
                  scene->addPixmap(QPixmap("../cat.jpg"));
Если Linux, то так:
                  scene->addPixmap(QPixmap("./cat.jpg"));