var newObject = Qt.createQmlObject('import bb.cascades 1.0; Label {text: "Hold on cowboy!" }', parentContainer, "dynamicSnippet1");
它运行,并返回一个对象,但它从不在屏幕上显示。我已经将它作为我的页面QML中的容器的副本。没有错误被抛出。我想知道这是否在Cascades中不起作用。
BB10 Cascades文档中记录了这一点:https://developer.blackberry.com/cascades/reference/qml-qt.html#createQmlObject-method
答案 0 :(得分:1)
1)请检查是否创建了newObject。
以下是示例代码:
var newObject = Qt.createQmlObject('import bb.cascades 1.0;
Label {text: "Hold on cowboy!" }', parentContainer, "dynamicSnippet1");
if(newObject == null) {
console.log("error creating object" + newObject.errorString());
}
2)请确保parentContainer可见。
答案 1 :(得分:1)
好的,我发现我的情况有问题
我使用Qt.createQmlObject()
如下:
import QtQuick 2.2;
Rectangle {
id: root
width: 300; height: 300
Row {
id: itemContainer
Component.onCompleted: {
var newObject = Qt.createQmlObject('import QtQuick 2.2; Rectangle {color: "red"; width: 200; height: 200}', itemContainer, "");
}
Rectangle {
width: 100; height: 50
color: "Yellow"
}
}
}
这不起作用,我改变如下:
import QtQuick 2.2;
Rectangle {
id: root
width: 300; height: 300
Row {
id: itemContainer
Rectangle {
width: 100; height: 50
color: "Yellow"
}
Component.onCompleted: {
var newObject = Qt.createQmlObject('import QtQuick 2.2; Rectangle {color: "red"; width: 200; height: 200}', itemContainer, "");
}
}
}
它有效,但不如预期!如您所见,在Qt.createQmlObject()
元素中执行Row
不会导致重新计算Row
元素的一些基本估算。
我在https://bugreports.qt-project.org/browse/QTBUG-40356
答案 2 :(得分:0)
在我看来,问题的大小和/或位置没有给出。 试试这个:
var newObject = Qt.createQmlObject('import bb.cascades 1.0; Label {text: "Hold on cowboy!"; anchors.fill: parent }', parentContainer, "dynamicSnippet1");
也可以尝试使用父级来锚定窗口大小(根元素 - 如果还没有)。
可能出现的另一个问题是字体颜色与背景匹配,因此请检查它。