Как отобразить картинку на форме в Qt?
Не минусуйте за простой вопрос, плиз. Просто я новичок в Qt и сходу не могу найти элемент управления, который бы просто отображал картинку на форме.
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 24 мар 2011 в 9:28
RomanChugunov RomanChugunov
2,515 3 3 золотых знака 25 25 серебряных знаков 37 37 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
QPixmap myPixmap( "image.png" ); label->setPixmap( myPixmap );
Вот так вроде. Ну, разумеется, label тоже создать.
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
ответ дан 24 мар 2011 в 10:34
Алексей Котов Алексей Котов
1,217 1 1 золотой знак 20 20 серебряных знаков 37 37 бронзовых знаков
С помощью метки (QLabel). Вот ссылка на документацию.
Отслеживать
user177221
ответ дан 24 мар 2011 в 10:12
125 1 1 бронзовый знак
поменял на рабочую
– user177221
25 окт 2015 в 8:01
ну или можно самому рисовать в QPainter’е окна. все зависит от того в каких целях вам надо вывести изображение..
Отслеживать
ответ дан 2 сен 2011 в 10:01
Александр Молофеев Александр Молофеев
2,346 14 14 серебряных знаков 19 19 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как в Pyqt добавить картинку к combobox через Qt designer?
Рабочий, вы скорее всего не добавили картинку в resource root

Ответ написан более трёх лет назад
Adven4er @Adven4er Автор вопроса
Эта проблема решилась, но возникла другая. Я для работы с формой перевожу её в .py и в этом файле импортируется модуль res_rc. Но при запуске возникает ошибка, что такого модуля нет. Как это можно починить?

WolfInChains @WolfInChains
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
- +2 ещё
Как ускорить работу с большими таблицами данных?
- 1 подписчик
- 9 часов назад
- 91 просмотр
#5 — Отображение изображения и статуса

В уроке мы научимся добавлять изображение в приложение, а также научимся работать с компонентом QStatusBar. Мы рассмотрим несколько способов добавление картинок, а также отображение различных статусов.
Видеоурок
В фреймворке Qt нет компонента, который отвечает конкретно за картинки. Чтобы добавить изображение в программу необходимо добавить текстовый объект и при помощи кода разместить в нем изображение.
Все изображения лучше всего хранить в самом проекте, а не на компьютере в какой-либо папке. Для хранения файлов в проекте необходимо создать папку resource и в неё добавить файлы.
Чтобы отобразить картинку необходимо использовать класс QPixMap , а также приблизительно следующий код:
QPixmap pix(":/resourec/img/image_name.png"); int w = ui->image->width(); int h = ui->image->height(); ui->image->setPixmap(pix.scaled(w, h, Qt::KeepAspectRatio));
Весь код записан в главном методе MainWindow , который вызывается каждый раз при создании приложения.
Статус бар
Для работы со статус баром используется объект statusBar , который автоматически присутствует в любом пустом приложении. Чтобы поместить туда информацию необходимо воспользоваться методом «showMessage».
Как вставить картинку в qt
![]()

Просмотр профиля
1.1.2009, 16:33
Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467
Репутация: 1
Не пойму, каким методом?
Например, есть у меня объект класса QWidget и QImage.
Создаю объект QImage :
QImage MyImage = new QImage(«newyear09.gif»,»GIF»);
как мне разместить это изображение на виджете?

опции профиля:
![]()

Просмотр профиля
1.1.2009, 17:08
Группа: Участник
Сообщений: 97
Регистрация: 23.4.2008
Из: г. Киров
Пользователь №: 155
Репутация: 1
На каком виджите ты хочешь размешать изображение? В общем случае его можно просто нарисовать на виджите, смотри методы отрисовки виджетов.

опции профиля:
![]()

Просмотр профиля
1.1.2009, 17:10
Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467
Репутация: 1
да я попробовал следующие :
MyImage = new QImage(«C:\\storage\\programming\\workspace\\1\\1.gif»);
WidgetForImage = new QWidget;
Painter = new QPainter(WidgetForImage);
Painter->drawImage(0,0,*MyImage);
// LayoutForImage->addWidget(MyImage);
// this->addLayout(LayoutForImage);
this->WidgetForImage->show();

опции профиля:
![]()

Просмотр профиля
1.1.2009, 18:19
Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68
Репутация: 6
и не должно быть.
ты должен выполнять этот код:
drawImage(0,0,*MyImage);
В событии виджета paintEvent(. ).
Есть вариант попроще: размести на виджете QLabel и засунь в QLabel пиксмап.

опции профиля:
![]()

Просмотр профиля
1.1.2009, 18:27
Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467
Репутация: 1
то есть нету простого способа создать виджет с изображением вставленным.

опции профиля:
![]()

Просмотр профиля
1.1.2009, 19:31
Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64
Репутация: 94
Цитата(Andrewshkovskii @ 1.1.2009, 21:27)
то есть нету простого способа создать виджет с изображением вставленным.
#include
int main(int argc, char** argv)
QApplication app(argc, argv);
QLabel lb;
QPixmap pix;
pix.load("./newyear09.gif");
lb.setPixmap(pix);
lb.show();
return app.exec();
>

опции профиля:
![]()

Просмотр профиля
1.1.2009, 23:56
Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467
Репутация: 1
Хм..странно, но метка просто-напросто не показывается..

опции профиля:
![]()

Просмотр профиля
2.1.2009, 1:01
Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64
Репутация: 94
Цитата(Andrewshkovskii @ 2.1.2009, 2:56)
Хм..странно, но метка просто-напросто не показывается..
значит файла newyear09.gif нет в каталоге с бинарем. Проверь.

опции профиля:
![]()

Просмотр профиля
2.1.2009, 1:06
Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467
Репутация: 1
да я проверял, и так и сяк. пишу вот так вот :
#include
int main(int argc, char** argv)
QApplication app(argc, argv);
QPixmap pix;
QLabel lbl;
if(pix.load("1.jpg")==false)
lbl.setText("FALSE");
else
lbl.setText("TRUE");
lbl.resize(pix.size());
lbl.setPixmap(pix);
lbl.show();
return app.exec();
>
сплошной false показывает..
Сообщение отредактировал Litkevich Yuriy — 2.1.2009, 1:13
Причина редактирования: используй тэг code с параметром (code=cpp)

опции профиля:
![]()

Просмотр профиля
2.1.2009, 1:17
Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64
Репутация: 94
вот тестовый пример:
Qt_test2.zip ( 37.28 килобайт ) Кол-во скачиваний: 283
скомпиль (qmake && make) и запусти отладочную версию ./build/tstd.exe
посмотри, что пишет в консоль.
затем в каталог ./build закинь файл av-64.gif и опять запусти отладочную версию ./build/tstd.exe
