Qt QPixmap предел указателя

У меня очень странная проблема с QPixmap в Qt.
Я пишу в C ++, кстати.
В любом случае проблема в том, что, как только я хочу создать 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 и дизайнера окон, как вы могли догадаться по коду.

Так что же я здесь делаю не так, что вызывает такое странное поведение?

Заранее спасибо!

0

Решение

Попробуйте инициализировать все ваши указатели в ноль сначала в конструкторе, прежде чем инициализировать или получить к ним доступ.

Также 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

Надеюсь, это поможет.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]