Russian Qt Forum

Qt => Печать => Тема начата: daenux от Февраль 09, 2011, 06:32



Название: Отображение изображения в отчете NCReport
Отправлено: daenux от Февраль 09, 2011, 06:32
Добрый день, у меня в базе данных PostgreSQL, в поле типа BYTEA лежат изображения (фотографии студентов), как их выводить в отчет с помоющью SQL Data Source?

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

Спасибо! :)


Название: Re: Отображение изображения в отчете NCReport
Отправлено: Пантер от Февраль 09, 2011, 08:16
Загрузи в QByteArray и сделай image.loadFromData (array)


Название: Re: Отображение изображения в отчете NCReport
Отправлено: daenux от Февраль 09, 2011, 09:24
Аха, отказываеться поле bytea пустое, т.е. не происходит запись, проверьте пожалуйста - так записываем:

Код:
// Создание и установление связи между объектами
QByteArray *qByteArray = new QByteArray();
QBuffer *qBuffer = new QBuffer(qByteArray, this);
QDataStream *qDataStream = new QDataStream(qBuffer);

qDebug() << qByteArray->count(); // Выводиться 0
if (qImage.byteCount != 0)
{ // Заходит в этот блок
  qBuffer->open(QIODevice::WriteOnly);
  qImage.save(qDataStream->device);
  qBuffer->close();
}
qDebug() << qByteArray->count(); // Выводиться 0


Название: Re: Отображение изображения в отчете NCReport
Отправлено: Пантер от Февраль 09, 2011, 10:03
Ну посмотри же ты пример в ассистенте, там все просто:
Код
C++ (Qt)
QImage image;
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into ba in PNG format