Russian Qt Forum
Ноябрь 23, 2024, 19:35
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
[updated] Designer Plugin и последовательность установки свойств
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [updated] Designer Plugin и последовательность установки свойств (Прочитано 2412 раз)
ZeroTroll
Гость
[updated] Designer Plugin и последовательность установки свойств
«
:
Апрель 14, 2010, 11:56 »
Есть виджет с тремя свойствами (Q_PROPERTY).
Первое можно установить в любой момент. В случае изменения оно сбрасывает два других.
Второе можно установить только тогда, когда установлено первое. Оно в свою очередь сбрасывает третье.
Третье устанавливается только если заданы первые два.
То есть молучается некая зависимость свойств друг от друга.
Для этого виджета написан плагин дизайнера. Свойства без проблем отображаются и редактируются в Property Editor.
Порядок задания свойств в xml и в генерированном коде зависит от порядка вызыва макроса Q_PROPERTY.
Что же получается: создаю форму в designer, кидаю виджет, задаю свойства, сохраняю, использую форму в проекте, компилирую, запускаю.
В итоге в запущенном приложении все свойства установились в правильном порядке и виджет выглядит как надо.
НО! Если открыть дизайнером форму второй раз, то все свойства кроме первого сбрасываются.
Как я понял, при загрузки виджета из ui в дизайнере, он устанавливает свойства не в том порядке, в котором записано в xml.
А для меня это критично.
Как обойти эту проблему?
Записан
ZeroTroll
Гость
Re: [updated] Designer Plugin и последовательность установки свойств
«
Ответ #1 :
Апрель 14, 2010, 12:43 »
Причину проблемы выявил, но как устранить - не знаю.
Первым свойством устанавливается QPixmap из файла ресурсов.
Вторым Свойством устанавливается число, корректность установки которого зависит от первого свойства.
Запускаем designer, он вызывает метод установки первого свойства передав ему пустую картинку.
Затем вызывает метод установки второго свойства, который увидив пустую картинку не срабатывает.
После всего этого дизайнер загружает файл ресурсов и вызывает только один метод установки первого свойства. Картинка передается нормально.
Вопрос: почему дизайнер вызывает методы установки свойств до того как загружен файл ресурсов.
Вопрос второй: почему дизайнер после загрузки файла ресурсов вызывает еще раз метод установки первого свойства, как бы видя, что в первый раз накосячил...
Что делать, товарищи?
Записан
ZeroTroll
Гость
Re: [updated] Designer Plugin и последовательность установки свойств
«
Ответ #2 :
Апрель 14, 2010, 13:47 »
Хм...
Если картинку брать не из файла ресурсов, а из файловой системы, тогда в первый раз отрабатывает нормально.
Но в любом случае происходит последовательная устапновка всех свойств в правильном порядке, и потом вызывается метод установки первого свойства (QPixmap).
И так, проблемы две:
1. При вызове метода установки свойства QPixmap фавйл ресурсов еще не загружен и картинка не досутпна.
2. После последовательной установки всех свойств еще раз (лишний раз) вызывается метод установки свойства типа QPixmap.
wtf?
Записан
ZeroTroll
Гость
Re: [updated] Designer Plugin и последовательность установки свойств
«
Ответ #3 :
Апрель 14, 2010, 14:07 »
Сейчас в качестве теста создал еще одно свойство типа QPixmap.
Точно так же - в первый раз вызывается метод установки свойства с пустым объектом QPixmap, а во второй раз уже берез его из файла ресурсов.
Что делать не знаю.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...