Qt: правильно хранить ресурс изображения для пользовательского виджета - PullRequest
2 голосов
/ 30 сентября 2011

Я делаю собственный виджет в Qt и рисую изображение в качестве фона.Фоновое изображение должно быть одинаковым для всех экземпляров виджетов.Я хотел бы знать, правильно ли я это делаю.

Вот как я это делаю сейчас:

// QMyWidget.h
class QMyWidget : public QWidget
{
 /* some stuff.. and then: */
protected:
  static QImage *imgBackground;
}

// QMyWidget.cpp
QImage *QMyWidget::imgDial = NULL;

QMyWidget::QMyWidget(QWidget *parent) : QWidget(parent)
{
    if(imgBackground== NULL)
    {
        imgBackground= new QImage();
        imgBackground->load(":/Images/background.png");
    }
}

void QMyWidget::paintEvent(QPaintEvent *e)
{
    QPainter painter(this);
    painter.drawImage(QPoint(), *imgBackground);
}

Код работает просто отлично, но так ли этосчитается хорошим способом сделать это?

1 Ответ

2 голосов
/ 30 сентября 2011

Это один из способов сделать это, и это достаточно хороший способ, если вы имеете дело только с одним изображением, но если вы когда-нибудь решите масштабировать и использовать пару пользовательских ресурсов, тогда Qt Resource System - лучший способ сделать это.Это сэкономит ваше время в коде (не нужно многократно выполнять QImage) и имеет несколько других полезных функций, таких как сжатие ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...