Здравствуйте, гость ( Вход | Регистрация )
zamnach | Дата 28.11.2008, 16:14 |
в качестве аккорда к ветке. Краткая метода по использованию самописного виджета (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-файла виджета} не был найден. Повторная установка приложения может исправить эту проблему" Кто-нить знает, как побороть эту проблему? Сувж. |
|
Litkevich Yuriy | Дата 6.8.2008, 13:38 |
zamnach, попробуй в командной строке студии qmake make должны собратся релиз и дебаг |
|
zamnach | Дата 6.8.2008, 12:53 |
zamnach, а ты собираешь какой командой? make или make release я таких команд ваще не знаю qmake -project (затем pro файл правится) qmake -t vcapp (в рез-те файл проекта с обвязкой для MSVC2005). открываю проект, сохраняю solution (если это dll, то правлю настройки проекта - вместо exe на dll + расширение результирующего файла) и кнопка в MSVC2005 - Build Solution. вуаля. |
|
Litkevich Yuriy | Дата 6.8.2008, 12:37 |
zamnach, а ты собираешь какой командой? make или make release |
|
zamnach | Дата 6.8.2008, 11:31 |
обнаружилось следующее: подправил pro файл плагина: добавил строку как в документации #! [1] CONFIG += designer plugin debug_and_release (было CONFIG += designer plugin release /*так в книге хитрого Бланшетт*/) пересобрал плагин. теперь в Debug режиме как не грузились custom widget динамически, так и не грузятся. в Release режиме - все ОК. custom Widget грузятся и работают. в чем засада? как сделать так, чтобы и в debug-режиме все работало? спасибо. |
|
zamnach | Дата 5.8.2008, 16:32 |
P.S. а чего ты так увлекся динамической загрузкой виджетов? надо разработать виджеты, запихнуть их в дизайнер. с помощью этих виджетов будут разрабатываться инженерами (далекими от программирования людьми) формы. Формы будут считываться в приложении динамически, заполняться какими-то данными, пользователь будет иметь возможность поменять данные. Данные являются ИД для неких математических расчетов. Т.о - динамическая загрузка виджетов позволяет организовать гибкий пользовательский интерфейс к некоемому математическому движку. вот-как-то-так |
|
Litkevich Yuriy | Дата 5.8.2008, 15:09 |
pro-файле проекта, втягивающего динамически формы? ведь конечная программа должна загрузить в память этот плагин, значит она должна знать о его существовании. P.S. а чего ты так увлекся динамической загрузкой виджетов? |
|
zamnach | Дата 5.8.2008, 15:04 |
может в pro-файле не хватает каких-нибудь библиотек, которые плагин реализуют? вопроса я не понял, поэтому встречный вопрос: речь идет о pro-файле плагина или pro-файле проекта, втягивающего динамически формы? |
|
Litkevich Yuriy | Дата 5.8.2008, 14:43 |
может в pro-файле не хватает каких-нибудь библиотек, которые плагин реализуют? | |
zamnach | Дата 5.8.2008, 13:38 |
синопсис: по книге Бланшетт сделан плагин к Designer. форма в новым виджетом (который из плагина) сохраняется в файл. при динамической загрузке формы через QUiLoader видны все виджеты за исключением самописного. как это побороть? Спасибо |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 23.4.2024, 9:49 |