crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Как использовать WorldTimeClock (из дизайнера)?
Litkevich Yuriy
  опции профиля:
сообщение 9.11.2009, 7:37
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Положил в дизайнере на пустой виджет часики (плагин).

Дальше стандартно, используя множественное наследование, создал простой проектик.
не компилится ни в релизе ни в дебаге.
линкер в упор невидит нужных сиволов.

Как же использовать дизайнерские плагины?
В асистенте ответа не нашёл.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 9.11.2009, 9:08
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


Я так подозреваю что этот плагин надо скомпилить, у меня он лежит тут:
...Qt\4.5.2_shared\examples\designer\worldtimeclockplugin\
или добавить его исходники к себе в проект
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 9.11.2009, 10:21
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Еще надо сделать дополнительные телодвижения с .pro файлом в FAQ'e троллей написано.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.11.2009, 11:17
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(DIMEDROLL @ 9.11.2009, 12:08) *
Я так подозреваю что этот плагин надо скомпилить
это-то само собой, иначеб я его на виджет положить не смог.

SABROG, а вот это сейчас попробую. Вообще несколько некузяво это место в справке сделано, как плагин сделать написано, а как использовать нет.
-----------

Любопытно.
Для данного конкретного плагина понадобилось добавить в pro-файл такие строчки:
#      --- WorldTimeClock plugin ---
INCLUDEPATH       +=    $$[QT_INSTALL_EXAMPLES]/designer/worldtimeclockplugin
QMAKE_LIBDIR   +=    $$[QT_INSTALL_PLUGINS]/designer
LIBS           +=  -lworldtimeclockplugin

После успешной компиляции программы (по умолчанию в отладчном режиме), программа не запускается требует dll'ку - логично. Но для меня было неожиданно, что её можно положить прямо к бинарю (В виндовозе разумеется). Я пологал, что нужно соблюсти правила по сохранению иерархии каталогов (как в случае с другими плагинами).
ЗАПУСКАЮ - програ аварийно завершается без сообщений. Запускаю через командную строку - пишет следующее:
L:\Repository\TramPamPam>app.d
QWidget: Must construct a QApplication before a QPaintDevice

abnormal program termination

L:\Repository\TramPamPam>
компилю прогу в релизе, запускается, часики идут.

Вопрос, почему в отладочном режиме нарушился порядок создания объектов, вместо какой-нибудь ругани о несовместимости dll'ки с приложением (ну там символы не те или подобное)?

-----------

накопал косячёк в примере плагина, никак не удавалось собрать отладочную его версию.
Не работала функция $$qtLibraryTarget(...)

РЕШЕНИЕ:
оказывается запись TEMPLATE = lib должна предшествовать этой фунции, только тогда к имени цели добавится буковка d

вобщем вот такой pro-файл у меня получился в конце концов:
#      --- WorldTimeClock plugin ---
INCLUDEPATH       += $$[QT_INSTALL_EXAMPLES]/designer/worldtimeclockplugin
QMAKE_LIBDIR   += $$[QT_INSTALL_PLUGINS]/designer
CONFIG (debug, debug|release) {
    LIBS           +=  -lworldtimeclockplugind
}else{
    LIBS           +=  -lworldtimeclockplugin
}
функция $$qtLibraryTarget(...) к сожалению работает только для TEMPLATE = lib
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 4.8.2020, 5:09