我有一个qt symbian项目,我以编程方式在QMainWindow的constracter上设置背景图像。但是我发现了这个bug,如果我打开和关闭那个QMainWindow例如15次,我用于后台的pixmap返回null。我在我的静态类中使pixmap静态,我在执行期间保留了一些信息,但它对我的情况没有帮助。我会感谢任何帮助。这是一些代码示例
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);
答案 0 :(得分:0)
您必须单步调试源来验证这一点,但是导致QPixmap
构造函数返回null的一种情况是它无法为pixmap分配足够的内存。 (我们在非常大的图像中遇到了这个问题。)
您是否成功释放了用于之前pixmaps的内存?在执行应用程序时运行内存分析器并查看内存是否泄漏。