crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QGraphicsView & QGraphicsScene, omoбражение фото
AD
  опции профиля:
сообщение 28.5.2011, 19:24
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Есть виджет QGraphicsView. На нем устанавливаю с помощью setScene QGraphicsScene.
/// Cлoт выбора фотографии
void CutAway::clickSelectPhoto()
{
    QString fname(valueElement("PhotoName", QString("")).toString()),
            caption("Диалоговoe oкнo oткрытия фoтoгpaфии");
    QString photo_name(QFileDialog::getOpenFileName(this, unicode(caption), fname, QString("*.jpg *.png")));
    photo_name = QDir::toNativeSeparators(photo_name);
    if(photo_name.isEmpty())
        return;

    writeElement("PhotoName", photo_name);
    linePathPhoto -> setText(photo_name);
    QImage img(QSize(400, 300), QImage::Format_RGB32);
    img.load(photo_name);
    _scene -> addPixmap(QPixmap::fromImage(img, Qt::OrderedAlphaDither));
}
Это код кнопки выбора фотографии. Как сделать, чтобы отобразилась фото? Пока показывается черная рамка вместо фото. Заранее спасибо за помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 30.5.2011, 10:03
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


#include <QtCore>                                                                                                                            
#include <QtGui>                                                                                                                            
                                                                                                                                            
int main(int argc, char *argv[])                                                                                                            
{                                                                                                                                            
    QApplication app(argc, argv);                                                                                                            
                                                                                                                                            
    QString photo_name(QFileDialog::getOpenFileName(0, "Open image", ".", "Images (*.png *.jpg *.jpeg)"));                                  
    if(photo_name.isEmpty())                                                                                                                
        return -1;                                                                                                                          
                                                                                                                                            
    QGraphicsView view;                                                                                                                      
    QGraphicsScene scene;                                                                                                                    
    view.setScene(&scene);                                                                                                                  
                                                                                                                                            
    scene.addPixmap(QPixmap(photo_name));                                                                                                  
                                                                                                                                            
    view.resize(480, 320);                                                                                                                  
    view.show();                                                                                                                            
    return app.exec();                                                                                                                      
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 30.5.2011, 10:23
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(igor_bogomolov @ 30.5.2011, 11:03) *

Я практически так и сделал, вообще-то. Есть недостаток. Фотографии jpg не подгружаются, только в png формате. Плагин для работы загрузил. Так как у меня статическая сборка, то просто добавил lib-файл.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.4.2021, 20:05