crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в плагины к Qt Desiner
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
zamnach Дата 28.11.2008, 16:14
  в качестве аккорда к ветке.
Краткая метода по использованию самописного виджета (Custom Widget) в своих программах,
написанных в MSVC2005+QT4.4.0

1. Делаем свой виджет
1.1. примерный вид pro-файла:
#! [0]
CONFIG      += designer plugin debug_and_release
#! [0]
TARGET      = $$qtLibraryTarget($$TARGET)
#! [1]
TEMPLATE    = lib
#! [1]
QTDIR_build:DESTDIR     = $$QT_BUILD_TREE/plugins/designer

# Input
HEADERS += {тут пути к h-файлам}
SOURCES += {тут пути к cpp-файлам}
RESOURCES += {тут пути к qrc-файлам}
# ================================

# install
target.path = $$[QT_INSTALL_PLUGINS]/designer
sources.files = $$SOURCES $$HEADERS *.pro
# sources.path = $$[CurrentDir]
INSTALLS += target sources

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
 
Цитата(Litkevich Yuriy @ 6.8.2008, 13:37) *
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
 
Цитата(Litkevich Yuriy @ 5.8.2008, 16:09) *
P.S. а чего ты так увлекся динамической загрузкой виджетов?


надо разработать виджеты, запихнуть их в дизайнер.
с помощью этих виджетов будут разрабатываться инженерами (далекими от программирования людьми) формы.
Формы будут считываться в приложении динамически,
заполняться какими-то данными, пользователь будет иметь возможность поменять данные.
Данные являются ИД для неких математических расчетов.
Т.о - динамическая загрузка виджетов позволяет организовать гибкий пользовательский интерфейс к некоемому математическому движку.
вот-как-то-так
Litkevich Yuriy Дата 5.8.2008, 15:09
 
Цитата(zamnach @ 5.8.2008, 19:04) *
pro-файле проекта, втягивающего динамически формы?

ведь конечная программа должна загрузить в память этот плагин, значит она должна знать о его существовании.

P.S. а чего ты так увлекся динамической загрузкой виджетов?
zamnach Дата 5.8.2008, 15:04
 
Цитата(Litkevich Yuriy @ 5.8.2008, 15:43) *
может в pro-файле не хватает каких-нибудь библиотек, которые плагин реализуют?

вопроса я не понял, поэтому встречный вопрос:
речь идет о pro-файле плагина или pro-файле проекта, втягивающего динамически формы?
Litkevich Yuriy Дата 5.8.2008, 14:43
  может в pro-файле не хватает каких-нибудь библиотек, которые плагин реализуют?
zamnach Дата 5.8.2008, 13:38
  синопсис:
по книге Бланшетт сделан плагин к Designer.
форма в новым виджетом (который из плагина) сохраняется в файл.
при динамической загрузке формы через QUiLoader видны все виджеты за исключением самописного.
как это побороть?
Спасибо
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 17:32