crossplatform.ru

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


  Ответ в Как использовать WorldTimeClock (из дизайнера)?
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 9.11.2009, 11:17
 
Цитата(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
SABROG Дата 9.11.2009, 10:21
  Еще надо сделать дополнительные телодвижения с .pro файлом в FAQ'e троллей написано.
DIMEDROLL Дата 9.11.2009, 9:08
  Я так подозреваю что этот плагин надо скомпилить, у меня он лежит тут:
...Qt\4.5.2_shared\examples\designer\worldtimeclockplugin\
или добавить его исходники к себе в проект
Litkevich Yuriy Дата 9.11.2009, 7:37
  Положил в дизайнере на пустой виджет часики (плагин).

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

Как же использовать дизайнерские плагины?
В асистенте ответа не нашёл.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 4:45