gpt4 book ai didi

c++ - 使用QT查看来自相机的流图像

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:54 29 4
gpt4 key购买 nike

我有一个软件可以通过网络将 JPG 发送到应该显示这些图像的 GUI 客户端。我基本上想将它们显示到 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 的新手,所以我确定我犯了一个微妙的错误。

非常感谢!

最佳答案

因为你处于无限循环中,Qt 可能没有机会处理事件。你可以尝试在设置 Pixmap 后调用 QCoreApplication::processEvents 吗?

关于c++ - 使用QT查看来自相机的流图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500476/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com