Russian Qt Forum

Qt => Qt Quick => Тема начата: mutineer от Январь 05, 2012, 14:55



Название: Как узнать о завершении создания объекта
Отправлено: mutineer от Январь 05, 2012, 14:55
Доброго времени суток.
Создаю новый класс (в С++), выставляю его в QML как новый тип. Затем в QML создаю объект этого типа

Код
Javascript
MyType {
       id: my_id
 
       prop_1: "value_1"
       prop_2: "value_2"
   }
 

При этом вызывается конструктор моего класса, а затем сеттеры для свойств. А есть ли способ узнать (в плюсовом коде этого класса), что QML уже закончил создание объекта моего класса?


Название: Re: Как узнать о завершении создания объекта собственного типа?
Отправлено: Ubuntu_linux от Январь 05, 2012, 15:33
Код
QBasic/QuickBASIC
MyType {
       id: my_id
 
       prop_1: "value_1"
       prop_2: "value_2"
 
Component.onCompleted: {console.debug("# create done!")}
}


Название: Re: Как узнать о завершении создания объекта собственного типа?
Отправлено: mutineer от Январь 05, 2012, 15:33
Угу, тогда уточнение: узнать мне это надо в плюсовом коде


Название: Re: Как узнать о завершении создания объекта собственного типа?
Отправлено: Ubuntu_linux от Январь 05, 2012, 15:37
Угу, тогда уточнение: узнать мне это надо в плюсовом коде

Код
QBasic/QuickBASIC
MyType {
       id: my_id
 
       prop_1: "value_1"
       prop_2: "value_2"
 
 
Component.onCompleted: {console.debug("# create done!");createDone() }
}
 
 

C++

signals:
void  createDone()

public slots:
void done(){qDebug()<<"# create done C++"}
.....
connection(this,SIGNAL(createDone()),this,SLOT(done()));


Название: Re: Как узнать о завершении создания объекта
Отправлено: mutineer от Январь 05, 2012, 15:39
интересно, но не подходит - создание отличается от создания всех других компонентов, что введет юзера в заблуждение. Можно легко забыть дописать этот вызов