crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 4:35