Russian Qt Forum

Qt => Общие вопросы => Тема начата: vipet от Декабрь 24, 2008, 18:58



Название: Как отследить изменение динамического свойства QObject'a?
Отправлено: vipet от Декабрь 24, 2008, 18:58

Можно ли средствами Qt отслеживать изменения динамических свойств QObject'a?
Есть, конечно, QDynamicPropertyChangeEvent. Но он случается при создании, изменении, удалении динамического свойства. Т.е. надо самому хранить значение свойства, чтобы сравнивать с новым.

Вообще getter/setter-функции были бы идеально.

Пока я только вижу, что это можно cделать только с использованием QtScript.

[Qt 4.5 beta, 4.4.x]


Название: Re: Как отследить изменение динамического свойства QObject'a?
Отправлено: Detonator от Декабрь 24, 2008, 20:11
А в чем проблема хранить старое св-во?


Название: Re: Как отследить изменение динамического свойства QObject'a?
Отправлено: vipet от Декабрь 24, 2008, 20:51
Хранить старые значения свойств конечно можно, разве что память лишняя потребуется если много хранить надо. (Для мобильных ОС, где мало памяти, эта проблема может быть актуальна.) Ну и хотелось сделать наиболее правильно и красиво (думал может я еще плохо разобрался).


Название: Re: Как отследить изменение динамического свойства QObject'a?
Отправлено: Rcus от Декабрь 24, 2008, 21:06
Смотря что храним (базовые классы Qt используют счетчики ссылок и копирование-при-записи для сохранения памяти), но обычно там где используются динамические свойства и варианты память считать уже бесполезно :)


Название: Re: Как отследить изменение динамического свойства QObject'a?
Отправлено: vipet от Декабрь 24, 2008, 22:41
 :)


Название: Re: Как отследить изменение динамического с&#
Отправлено: Detonator от Декабрь 25, 2008, 08:29
Цитировать
Ну и хотелось сделать наиболее правильно и красиво

Ну чтобы красиво попробуй попросить у команды Qt добавить oldValue и newValue в QDynamicPropertyChangeEvent.
А пока сам исходники поправь и перекомпили.