如何在Qt中声明和实例化变量?

时间:2011-08-31 09:12:27

标签: c++ qt qpainter qpixmap

起初我想为这个愚蠢的问题道歉,但我对Qt很新,所以原谅我;)

我在画QPixmaps。但是对于性能问题,我只想加载QPixmaps一次,一次又一次地使用它们。目前我在调用更新时总是加载它们,但是应该可以在构造函数中只加载它们一次。在这种情况下,.h文件和QPixmap变量的声明如何?到目前为止无法理解。

2 个答案:

答案 0 :(得分:1)

Qt是一个C ++库,所以你只需编写c ++代码:

部首:

class foo : public QWidget {
public:
    foo(QWidget *parent = 0);

private:
    QPixMap *bar;
};

来源:

foo::foo(QWidget *parent) : QWidget(parent) {
    bar = new QPixMap("bar.png");
    // Some error checking...
}

答案 1 :(得分:0)

您可能不需要优化图像加载:如果通过将filename参数传递给QPixmapQPixmap::load的构造函数来加载它们,它们会自动缓存在QPixmapCache中提到here

如果你真的想让QPixmap作为你班级的成员,你不应该使用指针,因为,基本上:

  • QPixmap个对象已经是智能指针,就像来自that list的所有Qt“隐式共享类型”一样,
  • 原始指针是邪恶的,因为它们可能无效,需要手动删除。