我正在处理图像处理应用程序,我使用此代码
Camera {
id: cam
viewfinder.resolution: "640x480"
viewfinder.minimumFrameRate: 5
captureMode: Camera.CaptureStillImage
imageCapture {
resolution: "640x480"
onReadyChanged: {
imageDecoder.reset() // my decoder class
cam.imageCapture.capture()
}
onImageCaptured: {
console.log(requestId, preview)
imageDecoder.decodeQmlPreview(preview)
}
}
imageProcessing {
contrast: 0.60
}
}
VideoOutput {
id: output
fillMode: VideoOutput.PreserveAspectCrop
anchors.fill: parent
source: cam
}
我发现所有这些捕获的图像(preview
)都存储在硬盘驱动器上,永远不会被删除。如何删除这些图像?我的硬盘空间非常有限。
# ls -lh | grep IMG
-rw-r--r-- 1 root root 10.5K Jan 1 00:40 IMG_00000001.jpg
-rw-r--r-- 1 root root 12.2K Jan 1 00:45 IMG_00000002.jpg
-rw-r--r-- 1 root root 15.6K Jan 1 00:48 IMG_00000003.jpg
-rw-r--r-- 1 root root 15.6K Jan 1 00:49 IMG_00000004.jpg
-rw-r--r-- 1 root root 11.4K Jan 1 01:05 IMG_00000005.jpg
答案 0 :(得分:1)
QML与FS有一种相当隐含的关系 - 它的内部功能会读取并有时会写入,但它似乎没有一个定义的API供用户直接与FS交互。
这意味着您必须在C ++中实现该功能,并将其公开给QML。
我的做法是创建class System : public QObject
并将所有必要的内容放入其中,然后放入main.cpp
:
System s(&engine);
engine.rootContext()->setContextProperty("Sys", &s);
然后从QML中你可以简单地Sys.doYourStuff()
。在您的情况下,您需要静态函数bool QFile::remove(const QString &fileName)
。