Fri*_*ich 1 qt jpeg qimage qml
我的应用程序通过网络(每秒16帧)接收JPEG的实时流.应使用QML显示实时流.接收部分用C++编写,所有UI都是用QML编写的.
如何将图像数据导入QML窗口?我已经了解了如何显示QImage,但我还没有找到解决方案.
实现QDeclarativeImageProvider并使用不同的名称一遍又一遍地刷新图像源似乎是唯一的解决方案,请参阅http://qt-project.org/doc/qt-4.8/qdeclarativeimageprovider.html.
是的,遗憾的是Image元素缺少一个update()方法(强行重置它).设置完全相同的源URL不会触发更新.
你可以使用这样的东西作为一种解决方法:
Image {
source: "image://yourImageProvider/something"
cache: false
function reload() {
var oldSource = source;
source = "";
source = oldSource;
}
}
Run Code Online (Sandbox Code Playgroud)
(或者只是在两个URL之间切换,具有相同的提供者名称,但路径不同......)
您还应该将收到的JPEG 推送到QML层.一旦你收到一个新的图像,你应该从暴露给QML引擎的一些对象发出C++的信号,并将该信号连接到该reload()函数.该Connections元素将帮助你.
Connections {
target: myC++ObjectExposedToTheQMLEngine
onNewFrameReceived: image.reload();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4722 次 |
| 最近记录: |