плагины к Qt Desiner, виджеты не видны при динамической загрузке диалога |
Здравствуйте, гость ( Вход | Регистрация )
плагины к Qt Desiner, виджеты не видны при динамической загрузке диалога |
zamnach |
5.8.2008, 13:38
Сообщение
#1
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
синопсис:
по книге Бланшетт сделан плагин к Designer. форма в новым виджетом (который из плагина) сохраняется в файл. при динамической загрузке формы через QUiLoader видны все виджеты за исключением самописного. как это побороть? Спасибо |
|
|
Litkevich Yuriy |
5.8.2008, 14:43
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
может в pro-файле не хватает каких-нибудь библиотек, которые плагин реализуют?
|
|
|
zamnach |
5.8.2008, 15:04
Сообщение
#3
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
5.8.2008, 15:09
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
zamnach |
5.8.2008, 16:32
Сообщение
#5
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
P.S. а чего ты так увлекся динамической загрузкой виджетов? надо разработать виджеты, запихнуть их в дизайнер. с помощью этих виджетов будут разрабатываться инженерами (далекими от программирования людьми) формы. Формы будут считываться в приложении динамически, заполняться какими-то данными, пользователь будет иметь возможность поменять данные. Данные являются ИД для неких математических расчетов. Т.о - динамическая загрузка виджетов позволяет организовать гибкий пользовательский интерфейс к некоемому математическому движку. вот-как-то-так |
|
|
zamnach |
6.8.2008, 11:31
Сообщение
#6
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
обнаружилось следующее:
подправил pro файл плагина: добавил строку как в документации #! [1] CONFIG += designer plugin debug_and_release (было CONFIG += designer plugin release /*так в книге хитрого Бланшетт*/) пересобрал плагин. теперь в Debug режиме как не грузились custom widget динамически, так и не грузятся. в Release режиме - все ОК. custom Widget грузятся и работают. в чем засада? как сделать так, чтобы и в debug-режиме все работало? спасибо. |
|
|
Litkevich Yuriy |
6.8.2008, 12:37
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
zamnach, а ты собираешь какой командой?
make или make release |
|
|
zamnach |
6.8.2008, 12:53
Сообщение
#8
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
zamnach, а ты собираешь какой командой? make или make release я таких команд ваще не знаю qmake -project (затем pro файл правится) qmake -t vcapp (в рез-те файл проекта с обвязкой для MSVC2005). открываю проект, сохраняю solution (если это dll, то правлю настройки проекта - вместо exe на dll + расширение результирующего файла) и кнопка в MSVC2005 - Build Solution. вуаля. |
|
|
Litkevich Yuriy |
6.8.2008, 13:38
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
zamnach, попробуй в командной строке студии
qmake make должны собратся релиз и дебаг |
|
|
zamnach |
28.11.2008, 16:14
Сообщение
#10
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
в качестве аккорда к ветке.
Краткая метода по использованию самописного виджета (Custom Widget) в своих программах, написанных в MSVC2005+QT4.4.0 1. Делаем свой виджет 1.1. примерный вид pro-файла:
1.2 Собираем под VC проект со своим виджетом 1.2.1 собираем в Debug 1.2.2 собираем в Release 1.3 Копируем файлы dll, exp, lib (из папок Debug и Release проекта) в $QTDIR$\plugins\designer\ (т.е. в папку плагинов дизайнера) 2. Создаем проект программы, загружающей формы с виджетами динамически (т.е. использующих UiLoader) 2.1 Копируем файлы dll, lib(из папок Debug и Release виджета) + h-файл виджета (не плагина, устанавливающего виджет в дизайнер, а самого виджета) в проект программы 2.2. добавляем в проект MSVC h- и lib- файлы 2.3. форму *.ui загружаем по примеру Бланшетт примерно, так. p/s №1 Если есть замечания - излагайте, может эта ветка поможет новичкам быстро освоить динамическую загрузку форм, содержащих, в том числе, custom widget p/s №2 Файлы dll виджета надо копировать в корень проекта MSVC. Если скопировать lib и dll не в корневую папку проекта, а в подпапку, то проект перестает запускаться (компилится успешно, так я не забываю)) перепрописать пути к либам). До входа в main появляется MessageBox "Не удалось найти компонент", "Приложению не удалось запуститься, поскольку {имя dll-файла виджета} не был найден. Повторная установка приложения может исправить эту проблему" Кто-нить знает, как побороть эту проблему? Сувж. |
|
|
Текстовая версия | Сейчас: 27.12.2024, 14:19 |