С qt 5.2 я пытаюсь динамически добавить простую кнопку, подобную этой:
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: Компонент не готов
Что случилось ?
object.status
необходимо проверить на равенство (==
) с перечислениемComponent.Ready
. А так же можно печатать, такие ошибкиif (component.status == Component.Error) { // Error Handling console.log("Error loading component:", component.errorString()); }
надеюсь, функцияaddButton
не разрешена в статическом компоненте Button. Поэтому попробуйте добавитьappWindow.addButton();
в обработчик событияonClicked
. - person RajaRaviVarma   schedule 27.01.2014