Russian Qt Forum

Qt => Работа с сетью => Тема начата: Raast от Май 25, 2009, 00:35



Название: Как работать с буфером...
Отправлено: Raast от Май 25, 2009, 00:35
Есть небольшая проблемка:

1.Как tcp/ip серверу хранить переданный файл (пусть *.jpg) от клиентского приложения в буфере (QBuffer или др.) , не сохраняя его на диске?
2. и потом в любое время Отображать этот файл из этого буфера в QWidget,QFrame???

Не могу нигде найти хотя xample(((

Подскажите, кто может!


Название: Re: Как работать с буфером...
Отправлено: Admin от Май 25, 2009, 09:04
1) у вас картинка в массиве? тогда смотрим QBuffer::setData ( const char * data, int size )
2) кидаем на форму QLabel и далее типа так

Код
C++ (Qt)
 
    QLabel topLevelLabel;
    QImage img;
    img.loadFromData(data, size, "JPG");
    QPixmap pixmap(img);
    topLevelLabel.setPixmap(QPixmap::fromImage(img));
 


Название: Re: Как работать с буфером...
Отправлено: Raast от Май 25, 2009, 21:32
Спасибо, попробую...


Название: Re: Как работать с буфером...
Отправлено: Raast от Май 31, 2009, 21:33
Мне из сокета можно взять информацию по разному из QDatastream(по блокам но в принципе не важно), то есть мои действия:
1. Создаю QByteArray data;
2. Устанивливаю QBuffer::setbuffer() к массиву data;
3. Из QDatastream в массив data;
4. Ваши шаги ,

     QLabel topLevelLabel;
     QImage img;
     img.loadFromData(data, size, "JPG");
     QPixmap pixmap(img);
     topLevelLabel.setPixmap(QPixmap::fromImage(img));
 только  конструткор ругаеться по поводу QPixmap XXX(QImage);

Поправьте меня правильно, пожалуйста, или я просто не понимаю!!!ПО КНИГАМ QBuffer открывает, чтение/запись, закрывает массив??Я впервые сталкиваюсь с работой буфера


Название: Re: Как работать с буфером...
Отправлено: Raast от Май 31, 2009, 23:04
Пожалуйста помогите, хранить файл в буфере


Название: Re: Как работать с буфером...
Отправлено: Admin от Май 31, 2009, 23:30
Замените

Код
C++ (Qt)
QPixmap pixmap(img);

на

Код
C++ (Qt)
QPixmap pixmap = QPixmap::fromImage(img)

Должно помочь.