2017-02-28 36 views
-3

我无法在新线程中捕获图像 您能告诉我这是什么意思?无法分配到不存在的默认属性

import qyvlik.thread.runnable 0.1 
import qyvlik.utility 0.1 
import QtMultimedia 5.5 
QmlRunnable 
{ 
    id: runnable 

    Camera 
    { 
     id: cam 
    } 

    onMessageReceived: 
    { 
     cam.imageCapture.capture() 
    } 
} 

EDIT(@derM):看来this是第三方模块的来源。

+0

它只意味着您无法捕捉图像。但严重的是,在提问之前,您必须阅读[this](http://stackoverflow.com/help/mcve)文章。 – folibis

回答

2

由于@KevinKrammer指出:

出现错误,因为你的类QmlRunnable没有default property,对此您Camera -object能分到。这对于QML中的大多数非Item-QObject是标准的。

类的作者都知道这个问题,因此,他定义了一个属性,以他的DirSize -object存储在他example

import qyvlik.thread.runnable 0.1 
import qyvlik.utility 0.1 


QmlRunnable { 
    id: runnable 

    readonly property var __: DirSize { 
     id: dirsize 
    } 

    onMessageReceived: { 
     console.time("dirsize") 
     sendMessage(dirsize.dirSize(message)); 
     console.timeEnd("dirsize") 
    } 
} 

从这我猜解会是这样的:

import qyvlik.thread.runnable 0.1 
import qyvlik.utility 0.1 
import QtMultimedia 5.5 
QmlRunnable 
{ 
    id: runnable 

    property Camera cam: Camera // <--- create a property to assign it to. 
    { 
    } 

    onMessageReceived: 
    { 
     cam.imageCapture.capture() 
    } 
} 
+0

请再详细一点,我可以在哪里写onImageCaptured:{}? –

+0

好的。我已经明白了。万分感谢 –

0

您正在使用一些第三方QML模块,其中一个显然提供了QmlRunnable类型。

没有关于该类型的任何信息,例如指向其文档的链接,该错误将表明它是没有默认属性的信息。

当您尝试在QmlRunnable内部创建Camera对象时,引擎将尝试将该实例分配给“父级”的默认属性。

同样,没有关于类型的任何知识,很难提供任何帮助。

+0

这看起来不像一个答案。 – folibis

+1

@folibis:但它是。当没有定义'default property'时,使用这种语法是一个常见的错误。这也是这种情况。对于这个悲惨的问题,这是最好的答案。 – derM