Название: Неполное функционирование программы на другом компьютере Отправлено: KyberProtagonistes от Сентябрь 08, 2009, 16:38 Написал мини-игру. На моём компе работает на ура. Пробовал на других - какая-то ерунда. Игра запускается, но без сплеш-скрина. Потом когда, собственно, время игре начаться, в TLabel'e не появляются картинки. Картинки для тлейбла и для сплешскрина лежат в папке с экзешником и открываются методом
Код: QPixmap pixmap("splash.jpg"); Код: label->setPixmap(QPixmap("img1.jpg")); Название: Re: Неполное функционирование программы на другом компьютере Отправлено: ecspertiza от Сентябрь 08, 2009, 16:52 У тебя в папке с софтиной есть папка imageformats ?
Название: Re: Неполное функционирование программы на другом компьютере Отправлено: KyberProtagonistes от Сентябрь 08, 2009, 16:54 Так. Есть папки
bin\ build\ src\ ui\ В папке бин лежат екзешник, дллы, которые я туда скинул, и картинки. Папки imageformats, вроде, нигде нет. Название: Re: Неполное функционирование программы на другом компьютере Отправлено: Hellraiser от Сентябрь 08, 2009, 17:21 Создай в bin папку imageformats и скопируй туда все dll из %QTDIR%\plugins\imageformats
Название: Re: Неполное функционирование программы на другом компьютере Отправлено: KyberProtagonistes от Сентябрь 08, 2009, 17:26 А вот это нужно будет в код добавлять: qApp->addLibraryPath("C:\\QtPlugins"); ??
Название: Re: Неполное функционирование программы на другом компьютере Отправлено: whirlwind от Сентябрь 08, 2009, 17:56 просто на всякий случай, я бы писал вроде
Код: QPixmap pixmap(QCoreApplication::applicationDirPath() + QDir::separator() + "splash.jpg"); Название: Re: Неполное функционирование программы на другом компьютере Отправлено: spectre71 от Сентябрь 08, 2009, 17:56 Изучи Qt ресурсы(qrc), если объемы ресурсов не слишком большие(1, 2, 3.. MB), то лучше пользоваться qrc!
В некоторых случаях, - для библиотек, удобно всталять images непосредственно в код в виде char*[] массивов в XPM формате(смотри QPixmap ( const char * const[] xpm )) Пример: Код
Название: Re: Неполное функционирование программы на другом компьютере Отправлено: KyberProtagonistes от Сентябрь 08, 2009, 18:48 просто на всякий случай, я бы писал вроде Попробую, спасибо.Код: QPixmap pixmap(QCoreApplication::applicationDirPath() + QDir::separator() + "splash.jpg"); Изучи Qt ресурсы(qrc), если объемы ресурсов не слишком большие(1, 2, 3.. MB), то лучше пользоваться qrc! Не, это сильно жестоко =) У меня 3 кратинки 100*150 и одна вообще большая.В некоторых случаях, - для библиотек, удобно всталять images непосредственно в код в виде char*[] массивов в XPM формате(смотри QPixmap ( const char * const[] xpm )) Пример: Код
Название: Re: Неполное функционирование программы на другом компьютере Отправлено: spectre71 от Сентябрь 08, 2009, 19:19 Не, это сильно жестоко =) У меня 3 кратинки 100*150 и ... 3*100*150*4 =~ 176 KB - маловатенько будет :) (я писал про несколько MB) одна вообще большая. Это сколько?Название: Re: Неполное функционирование программы на другом компьютере Отправлено: KyberProtagonistes от Сентябрь 08, 2009, 19:22 Большая - 800*600, по-моему. Хотя, я уже понял, для вас она небольшая =)
Кажется, мне помогло добавление папки imagesformats со всеми её плагинами - у знакомого на ХР благополучно запустилась игра со сплешем и всеми картинками. Всем спасибо! Название: Re: Неполное функционирование программы на другом компьютере Отправлено: spectre71 от Сентябрь 08, 2009, 19:41 Большая - 800*600, по-моему. Хотя, я уже понял, для вас она небольшая =) Изучи QRC! Поможет!Кажется, мне помогло добавление папки imagesformats со всеми её плагинами - у знакомого на ХР благополучно запустилась игра со сплешем и всеми картинками. Всем спасибо! 1) Они в исполняемом файле, который "мэпируется" системой => доступ к данным ресурсам максимально быстрый. 2) Чтение ресурсов из файлов черевато глюками(ошибки, тормоза - занятость файловой системы(проблема Windows), итд.) К примеру, у меня в пректе > 100 катинок, и ни одной не подгружается непосредственно из файла. При этом, ~90 в ресурсах и остальное в коде в виде XPM(для моих библиотечных классов) Кстати, твоя проблема могла быть из-за "jpg", лучше использовать "png" Название: Re: Неполное функционирование программы на другом компьютере Отправлено: cya-st от Сентябрь 08, 2009, 22:13 Еще можно проверить какие библиотеки слинкованы с вашим прилжоением с помощью инструмента http://www.dependencywalker.com/ (http://www.dependencywalker.com/). Все что вам нужно - это запустить его примерно так:
depends <исполняемый файл приложения> Это предоставит список библиотек, от которых зависит ваше приложение, и другую информацию. Название: Re: Неполное функционирование программы на другом компьютере Отправлено: lit-uriy от Сентябрь 08, 2009, 23:21 В Асистенте по развёртыванию приложения написано, в форуме много написано. И всё равно один и тотже вопрос задаётся.
См. Вики (http://www.wiki.crossplatform.ru/index.php/Развертывание_приложений_Qt_в_MS_Windows) Название: Re: Неполное функционирование программы на другом компьютере Отправлено: shadone от Сентябрь 09, 2009, 14:36 поддержка формата Jpeg в Qt реализауется с помощью плагина - вам нужно в директории с исполняемым файлом сделать структуру папок plugins/imageformats/ и положить туда плагин, потом с помощью qt.conf (http://doc.qt.nokia.com/4.5/qt-conf.html) указать путь до плагина (установив "Prefix=.").
Название: Re: Неполное функционирование программы на другом компьютере Отправлено: BRE от Сентябрь 09, 2009, 14:43 поддержка формата Jpeg в Qt реализауется с помощью плагина - вам нужно в директории с исполняемым файлом сделать структуру папок plugins/imageformats/ и положить туда плагин, потом с помощью qt.conf (http://doc.qt.nokia.com/4.5/qt-conf.html) указать путь до плагина (установив "Prefix=."). Папку plugins делать не надо, только папку imageformats.Цитата из assistent: Цитировать But where is the plugins directory? When the application is run, Qt will first treat the application's executable directory as the pluginsbase. For example if the application is in C:\Program Files\MyApp and has a style plugin, Qt will look in C:\Program Files\MyApp\styles. Название: Re: Неполное функционирование программы на другом компьютере Отправлено: KyberProtagonistes от Сентябрь 09, 2009, 15:04 Значит, что сделал я. Во-первых, скопировал папку imageformats из кьютешной папки в папку с моим исполняемым файлом. Во-вторых, как посоветовали, заменил открытие картинок на такое:
Код: QPixmap pixmap(QCoreApplication::applicationDirPath() + QDir::separator() + "splash.jpg"); В итоге, на компе без кьюта (ХР) эта программа нормально запустилась. Ещё раз всем спасибо. |