Russian Qt Forum
Ноябрь 23, 2024, 17:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: подключение изображения к проекту с помощью qt creator  (Прочитано 19759 раз)
TheAthlete
Гость
« : Апрель 01, 2011, 17:57 »

Здравствуйте!
Изучаю Qt по книге "Макс Шлее. Qt 4.5 Профессиональное программирование на C++"

написал вот такой код:

Код:
#include <QtGui>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QWidget wgt;

    QWidget *pwgt1 = new QWidget(&wgt);
    QPalette pal1;
    pal1.setColor(pwgt1->backgroundRole(), Qt::blue);
    pwgt1->setPalette(pal1);
    pwgt1->resize(100, 100);
    pwgt1->move(25, 25);
    pwgt1->setAutoFillBackground(true);

    QWidget *pwgt2 = new QWidget(&wgt);
    QPalette pal2;
    pal2.setBrush(pwgt2->backgroundRole(), QBrush(QPixmap("images/stone.png")));
    pwgt2->setPalette(pal2);
    pwgt2->resize(100, 100);
    pwgt2->move(75, 75);
    pwgt2->setAutoFillBackground(true);

    wgt.resize(200, 200);
    wgt.show();

    return app.exec();
}

в проект подключаю images.qrc, добавляю туда изображение

но почему-то изображение не подгружается
Записан
madRoger
Гость
« Ответ #1 : Апрель 01, 2011, 18:04 »

Цитировать
QPixmap("images/stone.png")

Перед images не хватеат двоеточия со слешем.

QPixmap(":/images/stone.png")
Записан
TheAthlete
Гость
« Ответ #2 : Апрель 01, 2011, 18:25 »

все-равно не работает.
хотя когда запускаешь отдельно от проекта и, естественно, кладешь нужные библиотеки Qt в папку и в папке лежит папка с изображением, то все нормально подхватывается
Записан
madRoger
Гость
« Ответ #3 : Апрель 01, 2011, 18:33 »

Проверьте правильность пути в Креаторе в файле images.qrc. Прежде чем добавить изображение в пустой файл ресурсов, в нем необходимо создать префикс, а потом добавлять изображение.
Проверьте правильность пути к изображению в файле ресурсов. Путь должен начинаться на :/ и состоять из иерархии префиксов и имени файла.

Проверьте, должно работать.

UPD: если переместить в директорию с программой папку с изображением, то оно будет отображаться, но оно будет браться не из ресурсов программы, а из папки. Библиотеки Qt тут вообще не причем. При переносе программы изображение естественно отображаться не будет. Или придется таскать его с собой в папке. Но если так делать, файл ресурсов вообще не нужен.
« Последнее редактирование: Апрель 01, 2011, 18:39 от madRoger » Записан
TheAthlete
Гость
« Ответ #4 : Апрель 01, 2011, 18:44 »

Спасибо! Все заработало! Я просто добавил к пути файла еще префикс.
Получилось

Код:
pal2.setBrush(pwgt2->backgroundRole(), QBrush(QPixmap(":/new/prefix1/images/stone.png")));

Теперь все подгружается.

Т.е. я так понял, что это относительный путь к изображению в файле ресурсов
Записан
madRoger
Гость
« Ответ #5 : Апрель 01, 2011, 18:53 »

Смысл применения файла ресурсов состоит в настройке упаковки самого ресурса в программу. Так вот программа при выполнении создает свой виртуальный диск с именем :/ А уже на этом виртуальном диске программа может дергать вшитые в нее ресурсы по указанным путям.
Так вот  :/new/prefix1/images/stone.png это полный путь к вшитому файлу на виртуальном диске программы.
Записан
bsn5_5
Гость
« Ответ #6 : Июнь 23, 2019, 18:52 »



Здравствуйте. Изучаю Qt по Шлее, проблема с галвой 11 пример ListWidget, там изображения помещены в файл resources.qrc, проблема в том, что не открываются изображения из файла ресурсов в программе на Qt, мало того стала выскакивать ошибка не сразу, а через некоторое время (см. скрин).

Не поможете? В чем может быть причина ошибки?

mingw32-make[1]: *** No rule to make target '../../common/Windows.jpg', needed by 'debug/qrc_resource.cpp'.  Stop.
mingw32-make: *** [Makefile:38: debug] Error 2
20:45:02: Процесс «D:\Qt\Tools\mingw730_64\bin\mingw32-make.exe» завершился с кодом 2.
Ошибка при сборке/установке проекта ListWidget (комплект: Desktop Qt 5.12.1 MinGW 64-bit)
Во время выполнения этапа «Сборка»
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Июль 12, 2019, 09:45 »

1) по поводу не появляется картинка:
если не появляется при использовании программы на другом компьютере, где Qt не установлена, то возьми с собой плагины

2) про ошибку компиляции
попробуй полностью пересобрать проект
Записан

Юра.
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #8 : Июль 29, 2019, 11:20 »

при работе с ресурсами не забывайте вызывать qmake, он сгенерирует/обновит необходимые файлы
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.