1

我是 Qt 的新手,所以也许这只是愚蠢的问题......

我有简单的演示应用程序。主文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

和 mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
}

MainWindow::~MainWindow()
{

}

当我启动应用程序时,内存使用量约为 2MB ...当我最大化窗口时,使用量约为 10MB。为什么会发生这种情况以及如何解决这个问题?我以为 Qt 使用 WinAPI 来创建窗口?

PS我使用Qt的静态构建(发布构建不是调试)

4

3 回答 3

2

你没有内存泄漏,更大的窗口需要更多的绘图,这需要更多的内存来绘制。使用 Qt5 时会更加明显,因为大部分绘图已移至 OpenGL,而 OpenGL 对内存的要求更高。

于 2013-01-08T14:46:57.847 回答
1

这不是 Qt 问题。

打开notepad++并最大化它,你会看到内存使用率更高。

于 2013-01-08T10:45:28.417 回答
1

我的猜测是,这可能至少部分是由双缓冲引起的(窗口越大,缓冲区域越大)。

如今,10 MB 的内存并不是很多,所以如果您知道自己没有任何内存泄漏,请不要担心。

于 2013-01-08T09:58:53.767 回答