Программная установка растрового изображения QLabel в Qt - PullRequest
5 голосов
/ 02 августа 2011

Виджет, который мы должны использовать для показа картинок - это QLabel.мы можем сделать это напрямую из QtCreator, установив его свойство pixmap.

Сначала мы должны создать файл ресурсов, а затем добавить изображение в этот файл ресурсов.Чтобы создать файл ресурсов Qt, мы идем в меню: Файл> Qt> Файл ресурсов Qt.

мы можем установить изображение QLabel, используя Qt Creator ...

, но я быхочу изменить рис согласно некоторому вводу от пользователя

я пытался сделать следующее:

#include "form1.h"
#include "form.h"
#include "ui_form.h"
#include "ui_form1.h"

Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui->setupUi(this);
    QPixmap * mypix = new QPixmap(":/karim/test.png");
    ui->label->setPixmap(mypix);
    delete mypix;
}

но я получил эту ошибку

..\Project\form.cpp: In constructor 'Form::Form(QWidget*)':

..\Project\form.cpp:12: error: no matching function for call to 'QLabel::setPixmap(QPixmap*&)'

c:\QtSDK\Simulator\Qt\mingw\include/QtGui/qlabel.h:123: note: candidates are: void QLabel::setPixmap(const QPixmap&)

что моглобыть проблемой?

1 Ответ

14 голосов
/ 02 августа 2011

Подпись метода, который вы пытаетесь использовать,

setPixmap (const QPixmap &)

но вы передаете указатель. Попробуйте вместо этого использовать значение.

QPixmap mypix (":/karim/test.png");
ui->label->setPixmap(mypix);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...