Qt qpixmap через некоторое время возвращает null - PullRequest
0 голосов
/ 29 марта 2012

У меня есть проект qt symbian, и я программно устанавливаю фоновое изображение на конструктор QMainWindow. но я обнаружил эту ошибку. Если я открою и закрою QMainWindow, например, 15 раз, то растровое изображение, которое я использовал для фона, возвращает ноль. Я сделал это растровое изображение статическим в своем статическом классе, который хранит некоторую информацию во время выполнения, но это не помогает моей ситуации. Я буду благодарен за любую помощь. Вот пример кода

SettingsWindow::SettingsWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::Settings)
{
ui->setupUi(this);
// getting screen geometry
QDesktopWidget* desktopWidget = qApp->desktop();
QRect screenGeometry = desktopWidget->screenGeometry();

ConstantVariables* pointer = ConstantVariables::CVinstance();

set image with screen geometry
QPalette* palette = new QPalette();
palette->setBrush(QPalette::Background,*(new QBrush(pointer->backGround->scaled(screenGeometry.width(),screenGeometry.height()))));
setPalette(*palette);     

1 Ответ

0 голосов
/ 29 марта 2012

Вы должны были бы пройти через источник, чтобы проверить это, но одна ситуация, которая заставляет конструктор QPixmap возвращать ноль, это если он не может выделить достаточно памяти для растрового изображения.(У нас была эта проблема с очень большими изображениями.)

Успешно ли вы освобождаете память, использованную для предыдущих растровых изображений?Запустите профилировщик памяти при запуске приложения и посмотрите, не просачивается ли память.

...