[英]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.