在我在Qt 5.1.1(MinGW)中工作的文本编辑器中,我意识到滚动QFontComboBox会为应用程序增加大约40MB的RAM使用量。为了测试问题是否仅在我的文本编辑器本地,我在QMainWindow的工具栏上创建了一个只有QFontComboBox的裸骨应用程序,结果仍然相同。应用程序从12MB开始,当我滚动列表(这也是一个视觉上的生涩体验)时,大约增加了40MB。我决定使用Qt 5.2.1 VS2012,但这次几乎80MB的RAM用完了。这是构造函数中的简单代码:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
toolBar = new QToolBar;
fontCBox = new QFontComboBox;
toolBar->addWidget(fontCBox);
addToolBar(toolBar);
}
一小时左右后,应用程序释放了一些内存,但滚动列表只会再次膨胀。这只是我扮演的RAM吝啬鬼还是QFontComboBox的常规行为?我只能认为Qt是某种方式" loading"导致这个问题的所有字体,但我没有证据。有没有人以前遇到过这个并知道解决方案?