crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Не отображаются картинки на пк, где не установлен Qt
MishaUA
  опции профиля:
сообщение 12.7.2013, 12:43
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Вобщем, есть такой код:
    QMovie* mm = new QMovie(this);
    mm->setFileName(":/new/pict/hot.gif");
    mm->stop();
    ui->label->setMovie(mm);
    mm->start();
    ui->label->adjustSize();

    ui->label2->setPixmap(QPixmap(":/new/pict/hot.gif"));
    ui->label2->adjustSize();

    ui->label3->setPixmap(QPixmap(":/new/pict/WinXP.jpeg"));
    ui->label3->adjustSize();

на label выводится gif в виде анимации, на label2 та же gif, но как картинка, на label3 выводится jpeg как картинка.
Проблема в том, что у меня все работает отлично, в вот на пк, где не установлен Qt ниодна графика не отображается.
На пк без Qt в папке с программой лежат такие библиотеки:

Какие еще dll нужно добавить?
PS: Qt5
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MishaUA
  опции профиля:
сообщение 12.7.2013, 15:00
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Насколько я понял, стандартными методами отображаются только BMP и PNG, для остальных нужны плагины с папки Qt, я поместил папку plugins в папку с программой, и с main.cpp сделал так:
    QStringList list_path;
    QDir dir = QDir(QApplication::applicationDirPath()+"/plugins/");
    list_path << dir.absolutePath ();
    QApplication::setLibraryPaths(list_path);

Теперь, если я у себя на пк запускаю - работает нормально, если удалю папку plugins, то картинки не отображаются, именно так и должно быть.
Но при запуске на пк без Qt появилась ошибка runtime error.
Что я сделал не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.7.2013, 16:19
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(MishaUA @ 12.7.2013, 17:00) *
я поместил папку plugins в папку с программой, и с main.cpp сделал так:
в этом нет нужды, см. тут
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MishaUA
  опции профиля:
сообщение 12.7.2013, 18:58
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


сделал, как написано по ссылке:
Раскрывающийся текст
Копирование плагинов в каталог с программой
Как сказано в Асистенте (plugins-howto.html)
« Когда приложение запущено, Qt сначала просматривает каталог исполняемого файла приложения в качестве pluginsbase. Например, если приложение находится в C:\Program Files\MyApp и имеет подключаемый модуль стиля, Qt будет искать в C:\Program Files\MyApp\styles. »
Другими словами, каталоги плагинов Qt (например, imageformats или sqldrivers) необходимо скопировать в каталог, где расположен исполняемый фал приложения/

но не помогло - картинки не отображаются(кроме bmp и png).
Кстати, Если скопировать эти плагины в папку с программой, на которой есть Qt, то картинки так же перестают работать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MishaUA
  опции профиля:
сообщение 12.7.2013, 19:41
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


а можно ли с помощью какого нить софта узнать, какие dll требует прога?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 12.7.2013, 20:29
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


Есть, например: Dependency Walker
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MishaUA
  опции профиля:
сообщение 13.7.2013, 12:48
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Такс, вобщем, после тщательного поиска в инете выяснилось, что в VisualStudio нужно добавить опцию компиляции -no-plugin-manifests, Но Qt Creator такого не поддерживает (делал в .pro файле QMAKE_CXXFLAGS += -no-pluginsб но компилер сказал, что не знает такого). Как эта опция пишется в Qt Creator?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.7.2013, 23:20
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(MishaUA @ 13.7.2013, 14:48) *
Как эта опция пишется в Qt Creator?
Qt Creator - всего лишь IDE, она вообще ничего не поддерживает. Ключи компиляции может поддерживать только компилятор. Для MinGW в таком ключе нужды нет (он его не знает).


Цитата(MishaUA @ 12.7.2013, 20:58) *
Кстати, Если скопировать эти плагины в папку с программой, на которой есть Qt, то картинки так же перестают работать
плагины или их каталог?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MishaUA
  опции профиля:
сообщение 14.7.2013, 1:09
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


уже разобрался с проблемой - скопировал папку plugins и все dll с папки bin - заработало! Затем, удалил не нужные dll
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.1.2020, 18:13