2
按钮使用Qt 5.2的动态创建,我想动态添加一个简单的按钮,像这样:在QML
ApplicationWindow
{
id: appWindow
width: 640
height: 420
minimumHeight: 400
minimumWidth: 600
function addButton() {
var obj = Qt.createComponent("Button.qml");
if (obj.status == obj.Ready)
{
var button = obj.createObject(appWindow);
button.color = "red";
button.width=50;
button.height=80;
button.x=50; button.y=50;
}
}
Button {
anchors.centerIn: parent;
text: "ok";
onClicked: {
addButton();
}
} ...
但就在createComponent后,我总是得到:
QQmlComponent :组件没有准备好
怎么了?
根据示例[here](https://qt-project.org/doc/qt-5.0/qtqml/qtqml-javascript-dynamicobjectcreation.html)。必须使用'Component.Ready'枚举检查'object.status'是否相等('==')。并且你也可以打印,像这样的错误 'if(component.status == Component.Error){ // Error Handling console.log(“Error loading component:”,component.errorString()); }' 我希望'addButton'函数在静态Button组件中没有解析。因此,请尝试在'onClicked'事件处理程序中添加'appWindow.addButton();'。 – RajaRaviVarma
我已经将import语句添加到文件的开头,并且它可以正确运行而不会出错。我看到一个按钮 – Kakadu