Russian Qt Forum
Май 15, 2024, 09:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Динамическое создание объектов  (Прочитано 5958 раз)
chu
Гость
« : Ноябрь 16, 2011, 02:44 »

В main.qml динамически создаю объекты SceneItem.qml :
Код:
    function createSceneItem(xPos, yPos, scaleFactor) {
        console.log("function emited", xPos, yPos, scaleFactor)
        var component = Qt.createComponent("SceneItem.qml")
        var object = component.createObject(root)
        object.x = xPos
        object.y = yPos
        object.scale = scaleFactor
    }
Как передать значения пользовательским свойствам создаваемого объекта и свойствам его составных элементов?
Например, SceneItem  имеет следующий вид:
Код:
import QtQuick 1.0
Item {
    id: sceneItem
    width: 300; height: 100
    property int number: 0

    Rectangle{
        id: back
        anchors.fill: parent
        color: "lightgray"
    }

    TextEdit{
        id: itemText
        text: "new item"
    }
Как при создании объекта  указать значение его свойства number и, например, свойства text у itemText
Записан
twp
Гость
« Ответ #1 : Ноябрь 16, 2011, 15:09 »

number также как и остальные свойства:
Код:
object.number = ...
а вот для второго случая нужно добавить альяс в SceneItem, ссылающийся на  text.itemText
Записан
Ubuntu_linux
Гость
« Ответ #2 : Ноябрь 17, 2011, 03:15 »

Код
C++ (Qt)
var component = Qt.createComponent("SceneItem.qml",{number:10})
Записан
twp
Гость
« Ответ #3 : Ноябрь 17, 2011, 13:01 »

Код
C++ (Qt)
var component = Qt.createComponent("SceneItem.qml",{number:10})
и что, так работает? может имелось ввиду это
Код
C++ (Qt)
var object = Qt.createObject(component,{number:10})
Записан
chu
Гость
« Ответ #4 : Ноябрь 18, 2011, 12:17 »

Спасибо за ответы, разобрался Улыбающийся
« Последнее редактирование: Ноябрь 18, 2011, 13:14 от chu » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.092 секунд. Запросов: 20.