Здравствуйте, гость ( Вход | Регистрация )
ViGOur | Дата 26.12.2008, 15:34 |
врятли мы осилим переплюнуть прогорг Если очень захотеть, можно в космос полететь! Да и не нужно никого переплевывать, для чего? Так для информации, по посещаемости наш сайт идет на одном уровне с ними, а у нас есть еще вики, документация и форум... И это все при том, что им 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 |
Может это связано с тем, что готовая QT не сконфигурирована под 2005-ю студию? да связано, см. тут параграф "Готовые сборки"ViGOur, может найдешь время исправить заготовку статьи Сборка Qt с использованием MS Visual Studio я посути текст скопировал из статьи по сборке с помощью MinGW32, хотел сам всю процедуру проделать и описать в статье. Но времени не нашлось |
|
Rocky | Дата 22.12.2008, 21:18 |
Только что поставил qt 4.4.3 инсталлятором (т.е. не сам собирал). Попробовал скомпилить один из их примеров:
Получил такой вот вывод..... Может это связано с тем, что готовая QT не сконфигурирована под 2005-ю студию? И ее (QT) надо пересобрать? Да, без указания все работает. |
|
ViGOur | Дата 22.12.2008, 17:51 |
Если версия не комерческая и нет интегратора, то сначала тебе нужно будет создать проект для студии, делается это так:
После чего открываешь студийный проект и пользуешь. Там же можешь посмотреть куда и что прописывается в настройках проекта. Я в принципе делаю 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 |
А там серьезные косяки? насколько я понял, там появились косяки которых в 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... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 26.4.2024, 6:27 |