我无法在新线程中捕获图像 你能告诉我这是什么意思吗?
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()
}
}
编辑(@ derM):似乎this是第三方模块的来源。
答案 0 :(得分:3)
@KevinKrammer指出:
出现错误,因为您的班级QmlRunnable
没有default property
,您的Camera
- 对象可以分配到该错误。这是QML中大多数非Item-QObjects的标准。
你班级的作者知道这个问题,因此他定义了一个属性来存储他的DirSize
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()
}
}
从此我想解决方案就是:
function comp( date)
{
var dates = date;
var flag = false;
for( var i = 0 ; i < dates.length-1; i++)
{
var firstdate = new Date(dates[i]);
firstdate.setDate(firstdate.getDate() + 1);
var seconddate = new Date(dates[i+1]);
if(seconddate.getTime() == firstdate.getTime())
{
flag = true;
}
else
{
flag = false;
return flag;
}
}
return flag;
}
function compare()
{
var days = ['2017-02-28', '2017-03-02', '2017-03-03', '2017-03-04'];
var abc = comp(days);
}
答案 1 :(得分:0)
您正在使用某些第三方QML模块,其中一个明显提供QmlRunnable
类型。
如果没有关于该类型的任何信息,例如其文档的链接,则错误会表明它是没有默认属性的信息。
当您尝试在Camera
内创建QmlRunnable
对象时,引擎会尝试将该实例分配给“父级”默认属性。
同样,在不了解类型的情况下,很难提供任何帮助。
答案 2 :(得分:0)
好吧,QmlRunnable不能使用gui类,因为它是不确定行为