c++ - Qt:正确存储自定义小部件的图像资源

标签 c++ qt widget

我正在 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);
}

代码工作得很好,但这被认为是一种好方法吗?

最佳答案

这是一种方法,如果您只处理单个图像,这是一种相当好的方法,但如果您决定缩放并使用几个自定义资源,那么 Qt Resource System是更好的方法。它将节省您的代码时间(不需要重复执行 QImage),并且具有其他一些不错的功能,例如资源压缩。

关于c++ - Qt:正确存储自定义小部件的图像资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7607362/

相关文章:

r - Jupyter R Notebook 中的 HTML 小部件

c++ - 具有基于身份的相等性的有序关联容器

c++ - 如何设置水平标题QHeaderView的高度?

c++ - aboutToQuit 期间的 Qt 异步操作

c++ - QPropertyAnimation 不工作

Qt 在另一个小部件中添加一个小部件?

HTML/CSS - 让子 iframe 使用父容器的宽度(Twitter 小部件)

c++ - 如何将大括号括起来的初始化列表传递给函数?

c++ - Visual Studio 2013 中的 Boost Spirit kwd 解析器

c++ - 类型定义类