LocalStorage QML返回

时间:2015-11-07 13:19:10

标签: local-storage qml qt5 qtquick2

我对理解一个函数有点问题。这是代码:

markerId Int

数据库的结构为x Inty IntnoteText TEXTnoteItems { markerId : 0 x: 0 y: 0 noteText: "example" }

我真的不明白这个函数的回归,我是QML的初学者。它是否返回一个对象数组?对象的结构是什么?

这样的事情可能是:

            RectF r = new RectF(); 
            matrix.mapRect(r);
            // sol1
            float scaledX = (lastX - r.left) + 48; // adjust to the tip of eraser
            float scaledY = (lastY - r.top) - 137; // adjust to the tip of eraser
            float[] values = new float[9];
            matrix.getValues(values);
            float scalex = values[Matrix.MSCALE_X];
            float skewy = values[Matrix.MSKEW_Y];
            float scale = (float) Math.sqrt(scalex * scalex + skewy * skewy);
            scaledX /= scale;
            scaledY /= scale;

            Bitmap bmOverlay = Bitmap.createBitmap(bitmap.getWidth(), 
                                                   bitmap.getHeight(), 
                                                   Bitmap.Config.ARGB_8888);
            System.out.println("bitmap.getWidth() " + bitmap.getWidth() + 
                               " bitmap.getHeight() " + bitmap.getHeight());
            Canvas c = new Canvas(bmOverlay);
            c.drawColor(Color.TRANSPARENT, Mode.CLEAR);


            c.drawBitmap(bitmap, 0, 0, null);
            c.drawCircle(scaledX, scaledY, 13.0f, mPaint); // punch a hole
            bitmap = bmOverlay; // update the main bitmap

1 个答案:

答案 0 :(得分:0)

首先,你问题中的函数没有正确关闭,你有不平衡的大括号。它看起来有点像破旧的剪切和粘贴。

也就是说,假设您向我们展示了该函数的全部内容,您可以注意到它不包含任何return语句。因此,这样的函数默认返回undefined

无论如何,以这种方式行事是有意义的。根据{{​​3}},_db.readTransaction接受一个传递事务对象的回调函数(通常命名为tx,但随意选择您喜欢的名称)并且它不会t关心返回的值,因此通过省略undefined语句返回return是一种非常合理的方法。

实际上,该函数正在填充一个名为noteItems的对象,该对象位于外部作用域中,并且由于名为closure的概念而成为可能。在这里描述和讨论主题已经很久了,但我们可以总结一下,在你的函数中你可以访问那里定义的任何变量,只要这些变量是封闭的scope的一部分。

构建导出对象的方式可以在官方文档中找到,因此我不会进一步讨论这个主题。你会发现它与你猜到的很接近。

最后,正如here所述,QML不会干扰JavaScript的自然范围,因此我建议您阅读更多有关它的信息,以便完全了解正在发生的事情。 here一个是开始的好点。