LINUX.ORG.RU

[Qt] Designer Plugin и последовательность установки свойств


0

0

Есть виджет с тремя свойствами (Q_PROPERTY).
Первое можно установить в любой момент. В случае изменения оно сбрасывает два других.
Второе можно установить только тогда, когда установлено первое. Оно в свою очередь сбрасывает третье.
Третье устанавливается только если заданы первые два первые.

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

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

Но в каком бы порядке они не задавались при проектировании формы, в ui_*.h генерируется нежелательный код, устанавливающий свойства в неправильном порядке.

Как и кому указать, что исходники надо генерировать с учетом порядка задания свойств?


Ответ на: комментарий от shapka

> Не делай такие свойства.

Это другой вопрос, к которому я вернусь ниже.

Вопрос заключается в возможности указания moc'у в каком порядке генерировать код установки свойств. У человека нога болит, а вы предлагаете ему омпутировать. Голову.

А теперь собственно о подходе.

Логика работы самого виджета не позволяет поступить иначе.
Сами виджеты Qt работают по такой же схеме.

Взять хотя бы QListWidget. Вы СНАЧАЛА должны заполнить его контентом, а потом уже установить currentRow. Напишите троллтекам письмо с просьбой никогда так не делать.

Fredrik ()

Нашел решение проблемы.
Свойства устанавливаются в том порядке, в котором вызываются макросы Q_PROPERTY.

Спасибо за внимание.

P.S. Все сильнее убеждаюсь в том, что кроме helloworld никто ничего не пишет.

Fredrik ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.