繁体   English   中英

Qt QPixmap指针限制

[英]Qt QPixmap pointer limit

我在Qt中使用QPixmap有一个非常奇怪的问题。 我在用C ++ btw编码。 无论如何,问题是,只要我想在主窗口类中创建第9个QPixmap指针,程序就会崩溃。 所以这工作:

class MainWindow : public QMainWindow
{
    Q_OBJECT
    QPixmap *doorOpened, *doorClosed, *dirUp, *dirDown, *dirNone, *timePause, *timePlay, *timeStop;
     //QPixmap *doorOpen;
 public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    Ui::MainWindow *ui;
};

这会崩溃:

class MainWindow : public QMainWindow
{
    Q_OBJECT
    QPixmap *doorOpened, *doorClosed, *dirUp, *dirDown, *dirNone, *timePause, *timePlay, *timeStop;
     QPixmap *doorOpen;
 public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    Ui::MainWindow *ui;
};

正如您可能已经通过代码猜到的那样,这些工作部分由Qt Creator和窗口设计器完成。

那么我在这里做错了什么导致这种奇怪的行为呢?

提前致谢!

在初始化或访问它们之前,请先尝试在构造函数中将所有指针初始化为零。

QPixmap还有一个函数isNull() 这对于检查错误是否有用。

同样,如果您对像素映射使用默认的构造函数( doorOpen = new QPixmap(); ),然后使用要使用的文件名调用load() ,则可以检查load()的返回值以执行错误检查。

http://qt-project.org/doc/qt-4.8/qpixmap.html#isNull

http://qt-project.org/doc/qt-4.8/qpixmap.html#load

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM