Russian Qt Forum

Qt => Общие вопросы => Тема начата: ZeroTroll от Апрель 14, 2010, 11:56



Название: [updated] Designer Plugin и последовательность установки свойств
Отправлено: ZeroTroll от Апрель 14, 2010, 11:56
Есть виджет с тремя свойствами (Q_PROPERTY).
Первое можно установить в любой момент. В случае изменения оно сбрасывает два других.
Второе можно установить только тогда, когда установлено первое. Оно в свою очередь сбрасывает третье.
Третье устанавливается только если заданы первые два.

То есть молучается некая зависимость свойств друг от друга.

Для этого виджета написан плагин дизайнера. Свойства без проблем отображаются и редактируются в Property Editor.

Порядок задания свойств в xml и в генерированном коде зависит от порядка вызыва макроса Q_PROPERTY.

Что же получается: создаю форму в designer, кидаю виджет, задаю свойства, сохраняю, использую форму в проекте, компилирую, запускаю.
В итоге в запущенном приложении все свойства установились в правильном порядке и виджет выглядит как надо.

НО! Если открыть дизайнером форму второй раз, то все свойства кроме первого сбрасываются.
Как я понял, при загрузки виджета из ui в дизайнере, он устанавливает свойства не в том порядке, в котором записано в xml.

А для меня это критично.

Как обойти эту проблему?


Название: Re: [updated] Designer Plugin и последовательность установки свойств
Отправлено: ZeroTroll от Апрель 14, 2010, 12:43
Причину проблемы выявил, но как устранить - не знаю.

Первым свойством устанавливается QPixmap из файла ресурсов.
Вторым Свойством устанавливается число, корректность установки которого зависит от первого свойства.

Запускаем designer, он вызывает метод установки первого свойства передав ему пустую картинку.
Затем вызывает метод установки второго свойства, который увидив пустую картинку не срабатывает.

После всего этого дизайнер загружает файл ресурсов и вызывает только один метод установки первого свойства. Картинка передается нормально.

Вопрос: почему дизайнер вызывает методы установки свойств до того как загружен файл ресурсов.
Вопрос второй: почему дизайнер после загрузки файла ресурсов вызывает еще раз метод установки первого свойства, как бы видя, что в первый раз накосячил...

Что делать, товарищи?


Название: Re: [updated] Designer Plugin и последовательность установки свойств
Отправлено: ZeroTroll от Апрель 14, 2010, 13:47
Хм...

Если картинку брать не из файла ресурсов, а из файловой системы, тогда в первый раз отрабатывает нормально.

Но в любом случае происходит последовательная устапновка всех свойств в правильном порядке, и потом вызывается метод установки первого свойства (QPixmap).

И так, проблемы две:
1. При вызове метода установки свойства QPixmap фавйл ресурсов еще не загружен и картинка не досутпна.
2. После последовательной установки всех свойств еще раз (лишний раз) вызывается метод установки свойства типа QPixmap.

wtf?


Название: Re: [updated] Designer Plugin и последовательность установки свойств
Отправлено: ZeroTroll от Апрель 14, 2010, 14:07
Сейчас в качестве теста создал еще одно свойство типа QPixmap.
Точно так же - в первый раз вызывается метод установки свойства с пустым объектом QPixmap, а во второй раз уже берез его из файла ресурсов.

Что делать не знаю.