0

我有一个 qt symbian 项目,并以编程方式在 QMainWindow 的构造器上设置背景图像。但我发现了这个错误,如果我打开和关闭 QMainWindow 15次,我用于背景的像素图返回 null。我在我的静态类中将像素图设为静态,我在执行期间保留了一些信息,但这对我的情况没有帮助。我会感谢任何帮助。这是一些代码示例

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);     
4

1 回答 1

0

您必须通过源代码来验证这一点,但导致QPixmap构造函数返回 null 的一种情况是它无法为像素图分配足够的内存。(我们在使用非常大的图像时遇到了这个问题。)

您是否成功地释放了用于先前像素图的内存?在执行应用程序时运行内存分析器并查看内存是否泄漏。

于 2012-03-29T14:57:11.247 回答