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