我正在 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/