好的,我發現我的情況有問題。
我以前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()
不會導致重新計算元素的一些基本估計值。
我把這個報告爲bug在https://bugreports.qt-project.org/browse/QTBUG-40356
我也是。我使用Qt 5.3.0,它不像預期的那樣工作。如果你可以在'.qml'文件中定義它,你可以創建組件。有關更多信息,請參閱文檔中的'Qt.createComponent()'。 –