У меня есть программное обеспечение, которое отправляет JPG по сети клиенту с графическим интерфейсом, который должен отображать эти изображения. Я в основном хочу отобразить их в окне qt, но у меня возникают проблемы с тем, как qt отображает последовательные JPG. Я проверил, правильно ли я получаю изображение, печатая его в файл, и это хорошо. Вот основной код:
int main(int argc, char *argv[]) {
// initialize resources, if needed
// Q_INIT_RESOURCE(resfile);
QApplication app(argc, argv);
CameraWindow cw;
cw.show();
//app.setActiveWindow(&cw);
cw.getData(); // this paints the window
return app.exec();
}
Вот код, который инициализирует виджет:
class CameraWindow : public QDialog {
Q_OBJECT
public:
bool serverConnected;
void getData();
CameraWindow()
{
imgl = new QLabel;
widget.scrollImage->setWidget(imgl);
widget.scrollImage->setBackgroundRole(QPalette::Dark);
}
QLabel *imgl;
virtual ~CameraWindow();
private:
Ui::CameraWindow widget;
};
Это соответствующая часть кода, которая должна рисовать изображение на экране, который находится внутри бесконечного цикла:
getData () вызывается из main:
while (myrval < Header.imageSize) {
myrval = myrval + recv(msgsock, (char*) ((int) buff + myrval),
Header.imageSize- myrval, 0);
}
//buff contains the jpg at this point
QPixmap imgjpg;
imgjpg.loadFromData((const unsigned char*)buff, Header.imageSize, "JPG");
//scroll image is the parent that displays child
//in this case, the label
imgl->setPixmap(imgjpg);
Я получил это, чтобы работать только для одного изображения, которое было загружено из файла, но когда я использую тот же метод для набора потоковых изображений, это не работает. Я новичок в Qt, поэтому я уверен, что у меня есть небольшая ошибка.
Большое спасибо!