С кварт 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 : Компонент не готов
Что случилось?
В соответствии с примером [здесь] (https://qt-project.org/doc/qt-5.0/qtqml/qtqml-javascript-dynamicobjectcreation.html). Элемент 'object.status' должен быть проверен на равенство (' == ') с перечнем' Component.Ready'. А также вы можете печатать, такие ошибки 'if (component.status == Component.Error) { // Обработка ошибок console.log (« Ошибка загрузки компонента: », component.errorString()); } ' Надеюсь, функция' addButton' не будет разрешена в статическом компоненте Button. Поэтому попробуйте добавить 'appWindow.addButton();' в обработчик события onClicked. – RajaRaviVarma
Я добавил оператор импорта в начало файла и работает корректно без ошибок. Я вижу кнопку – Kakadu