crossplatform.ru

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


  Ответ в dll и GUI
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
ViGOur Дата 26.12.2008, 15:34
 
Цитата(Litkevich Yuriy @ 24.12.2008, 19:36) *
врятли мы осилим переплюнуть прогорг
Если очень захотеть, можно в космос полететь! :)

Да и не нужно никого переплевывать, для чего?

Так для информации, по посещаемости наш сайт идет на одном уровне с ними, а у нас есть еще вики, документация и форум...
И это все при том, что им 4-5 лет, а нам 1 год! ;)
Они просят, чтобы ссылку на них пользователи добавляли на сайт, мы никого не просим, и пользователи сами это делают. Значит считают наш ресурс интересным и информативным... :)

К тому же если сравнивать наши главные страницы по поисковикам, то у нас ТИЦ: 50 PR: 4. У них ТИЦ: 50 PR: 0.
И так далее... ;)

Конечно у них больше народу, но у нас пока молодой форум. ;)
molchanoviv Дата 24.12.2008, 23:28
  Ну во первых сравнение некорректное, а во вторых зачем его переплевывать? Все таки цель форума не собрать побольше пользователей, сообщений и статей, а помощь людям.
Litkevich Yuriy Дата 24.12.2008, 19:36
  врятли мы осилим переплюнуть прогорг, да и по обезьяньи повторять этот процесс помоему нет смысла. Там ребята написали хороший урок по поводу dll'ок.
Rocky Дата 24.12.2008, 0:12
  Все, разобрался.... практически. vcapp почему-то не хочет кушать, ну и хрен с ним. Я взял уже готовый проект из их примеров, поменял в нем имена, основные принципы понял. Как сделать чтобы метаобъектные файлы генерились тоже вроде понятно. Правда руками такое тяжело писать... столько ключей всяких.. И это надо не забывать дописывать custom build в каждом файле, в котором определен класс с макросом Q_OBJECT. Да и генерятся они почему-то постоянно, даже если я ничего не изменял (так же, как и генерируется файл из ui постоянно, при каждом запуске приложения из-под среды). Ну это ладно... Основная проблема решилась. msvc2005+shared qt+visual assist. Остановился на таком варианте. По-поводу самого сабжа для тех кто будет читать, если qt собирать не статически, то неважно где что определено. в dll можно создавать любые виджеты, добавлять их в качестве дочерних виджетам, созданным в других dll или exe. Все очень классно работает.

Большое спасибо ViGOur, Litkevich Yuriy! :)
Litkevich Yuriy Дата 23.12.2008, 5:56
 
Цитата(Rocky @ 23.12.2008, 0:18) *
Может это связано с тем, что готовая QT не сконфигурирована под 2005-ю студию?
да связано, см. тут параграф "Готовые сборки"



ViGOur, может найдешь время исправить заготовку статьи Сборка Qt с использованием MS Visual Studio я посути текст скопировал из статьи по сборке с помощью MinGW32, хотел сам всю процедуру проделать и описать в статье. Но времени не нашлось :(
Rocky Дата 22.12.2008, 21:18
  Только что поставил qt 4.4.3 инсталлятором (т.е. не сам собирал). Попробовал скомпилить один из их примеров:

D:\QT\4.4.3\examples\dialogs\classwizard>qmake -t vcapp classwizard.pro
WARNING: Unable to generate output for: D:/QT/4.4.3/examples/dialogs/classwizard
//Makefile.Debug [TEMPLATE vcapp]
WARNING: Unable to generate output for: D:/QT/4.4.3/examples/dialogs/classwizard
//Makefile.Release [TEMPLATE vcapp]

Получил такой вот вывод..... Может это связано с тем, что готовая QT не сконфигурирована под 2005-ю студию? И ее (QT) надо пересобрать?

Да, без указания
-t vcapp
все работает.
ViGOur Дата 22.12.2008, 17:51
  Если версия не комерческая и нет интегратора, то сначала тебе нужно будет создать проект для студии, делается это так:
qmake -t vcapp myproject.pro

После чего открываешь студийный проект и пользуешь. :)

Там же можешь посмотреть куда и что прописывается в настройках проекта.

Я в принципе делаю Qt Wizard для студии, но пока реализован только визард для консольной версии Qt проекта, GUI и библиотеки пока времени нет добить...
Зато Add'in уже может работать с gui версией, но с уже настроенной руками...
Гость Дата 22.12.2008, 17:37
  Так и сделал... Только вот msvc почему-то не хочет работать с разделяемыми библиотеками.. Т.е. в принципе понятно почему, не понятно как убрать эти тысячи ошибок линковки (((( Не понятно где указать среде, какие dll использовать. Со статическими все просто (#pragma comment(lib, "...")). С динамическими никак не получается... Даже директива #import не помогает. ((( Если кто знает, подскажите плиз, можно ли заставить msvc работать с динамическими библиотеками qt, скомпиленными из не коммерческой версии qt.

Пробовал уже другие среды: KDevelop, CodeBlocks, QDevelop. Ни одна из них к сожалению не нравится в том плане, что практически полностью отсутствует возможность трассировки с просмотром значений переменных.... А без этого никак... Всякие мессаджбоксы выводить... это как-то тупо.... "qDebuq <<" в QDevelop-е делает вывод только после завершения приложения.... к тому же я еще по брейкпоинтам не могу зайти почему-то... с какой-то консоли на вопрос "Использовать ли такой-то брейкпоинт" автоматом отвечается "no". С какой радости? Где сказать "yes"? Короче, сплошные разочарования.... Не говоря уж об автодополнении кода через раз со своими типами данных и полным отсутствием автодополнения для stl например.... Или я чего-то не понимаю...

Осталась последняя надежда, настроить msvc на работу с динамическими dll qt. Теряется кроссплатформенность конечно... но зато хоть отладчик нормальный... )) Вобщем наставьте на путь истинный пожалйста, старейшины!

Заранее большое пасибо :)
Litkevich Yuriy Дата 30.11.2008, 6:09
 
Цитата(Гость_Евгений_* @ 30.11.2008, 1:55) *
А там серьезные косяки?
насколько я понял, там появились косяки которых в 4.3.х не было и народ крепко поподал, а вот 4.4.2 исправили все, что ровно работало в 4.3.х . И еще в 4.4.х наблюдаются косяки при статической сборке.

Вобщем я рекомендую собрать 4.4.3 с разделяемыми библиотеками и опробывать, а статическую сборку, если сильно приспичит сделать отдельно.
Евгений Дата 29.11.2008, 22:55
  ViGOur

Прочитал эту тему. Удалось создать в dll свое окошко. К сожалению есть одно но. Это окошко не может быть добавлено к QTabWidget посредством addWidget. Пишет что типа созданы в разных потокакх и пр. Это можно как-то избежать? Т.е. грубо говоря в dll создаются окна, которые затем должны быть добвлены как закладки на главное окно (которое создается в exe).

Я в принципе придумал как можно...ну сэмулировать чтоли это. Закладки можно делать со стилем AlwaysOnTop - или как-то так (код на работе остался, не могу посмотреть) и без заголовка. Но тогда другая проблема: перед созданием диалогового окна в dll создаю объект QApplication. Соответственно если вызывать app.exec() в dll, то не происходит отрисовки главного окна (потому что загрузка dll происходит до строки return app.exec(), находящеся в функции main в exe). Если же в dll не писать app.exec(), то главное окно отрисовывается нормально, а вот диалоговые окна созданные в dll - хреново (перерисовка происходит только при наложении других окон и пр. - такие симптомы). Т.е. есть например заполненный combobox, но как я там что-то выбираю, я не вижу - не рисуется синяя полоска :).

Подскажите плиз, как тут быть?

Litkevich Yuriy
Ок, спасибо, посмотрю. А там серьезные косяки? У меня на работе 6.5 часов компилился qt... :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 20.4.2024, 12:09