- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在编写一个小应用程序,其中的功能如下所示:
QString askForDir()
{
return QFileDialog::getExistingDirectory(this, "Choose directory", QString(""));
}
自从我添加了这个函数后,我提到在使用这个函数后内存分配变得很奇怪(askForDir()
)。
我使用 OS X Instruments 应用程序来满足调试需求,所以这就是我得到的:
峰值是 askForDir()
函数工作的时刻,我的意思是构建目录树。
在这些峰值之间有什么都没有发生的空间,我的意思是应用程序什么都不做,只是等待用户的其他操作。
如您所见,内存分配正在增长。如果你想要数字:
at 30sec - 91 Mb
at 50sec - 113 Mb
at 1m15sec - 135 Mb
每次增长 22 Mb
我尝试探索它并将 askForDir()
函数更改为如下所示:
QString askForDir()
{
return "/Users/username/Desktop";
}
我上面所说的一切都消失了。所以,我得出结论,问题出在 QFileDialog 上。
这是我正在使用的:
其他人有同样的“问题”吗?
最佳答案
看来,我想通了。
这不是泄漏,也不是错误。如果你在 windows xp 上打开记事本,内存使用量是 4mb。单击文件-> 打开,然后内存使用量增长到 9mb。关闭对话框,您可以看到内存使用量没有减少(或者只是大约 8.9Mb 一点点)。 Windows 显然正在缓存/创建我们的东西(例如缓存)。-> 这是 native 用法。
对于非本地人来说,也是一样的。第一次打开 QFileDialog 时,Qt 库会缓存一些图标供以后使用。这是在应用程序级别。这使得文件对话框中的导航以及稍后再次打开对话框的速度更快。这不是泄漏,当应用程序关闭时,所有内容都会被释放。
看起来到处都在发生同样的事情,所以,我认为,这个问题现在已经没有兴趣了。
关于c++ - QFileDialog内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24512584/
我正在尝试为必须对给定文件执行某些操作的程序编写 GUI。它的逻辑是: 1) 程序从创建一个文本字段和一个按钮开始。 2) 如果我点击按钮,我可以选择一些.exe 文件。如果选择文件,其路径将设置为与
我是 QT 的新手。目前在我的项目中我实现了 QFileDialog . 在我的用例中:每当用户选择一个文本文件时,它都会执行 functionA .但是,我发现如果在文件对话框中单击取消,funct
我尝试了以下操作来打开一个应该显示用户主目录的文件对话框: QString fileName = QFileDialog::getOpenFileName(this,
我试图在我的 PySide2 应用程序中打开一个文件,但文件对话框总是在主窗口下方打开,并在启动器中显示为另一个应用程序。应用程序的名称是“门户”。 我看到other answers其中解决方案是将主
我想创建一个 QFileDialog 的子类,它将用于仅打开具有某些特定内容的目录。我可以设置我自己的代理模型来处理文件列表的行为,但是如何禁用/启用确定按钮? 我必须创建自己的小部件吗? 最佳答案
1)我想获取文件夹监控应用程序的文件夹名称.. 有没有办法可以过滤掉使用 QFileDialog 显示的特定文件夹(例如,我不希望我的文档显示在文件对话框中)。 2)我不希望用户选择驱动器。默认情况下
我想建立一个类似于 QFileDialog::getExistingDirectory() 的对话框仅当所选目录包含某些文件时才启用确定按钮。 我知道我无法通过 QFileDialog 实现这一目标,
我使用下面的代码来构建文件名的 qstringlist: QStringList filenames = QFileDialog::getOpenFileNames(this,"",QDir::cur
QFileDialog 在我的代码中使用如下: QFileDialog fileDlg; fileDlg.setFileMode(QFileDialog::AnyFile); fileDlg.setV
我想打开一个包含所有支持的图像格式的 QFileDialog.getOpenFileName(我可以用来实例化 QIcon 的所有文件类型) 我已经知道我可以使用 QImageReader.suppo
关闭 QFileDialog.getSaveFileName 时遇到问题。如果我选择取消而不继续保存文件,我的程序就会崩溃。 我知道该语句将始终为 True,因为 getSaveFileName()
我想将选定文件的位置存储为 Python 中的字符串。我正在尝试使用 QFileDialog 来完成此任务,我有: self.filedialog = QtGui.QFileDialog(self)
我遇到了一个问题,当我选择不保存文件并单击系统窗口上的“取消”时,程序将崩溃。这是我收到的错误: Traceback (most recent call last): File "BasicEmail
我有一个 QFileDialog 对象,我需要用户在其中选择一个目录 QFileDialog dlg(this, tr("Select directory")); dlg.setDirectory(c
我同时使用 QFileDialog getOpenFileName 和 getSaveFileName。我在网络上有一个文件(连接速度慢),我使用 getOpenFileName 加载它。然后,如果我
我在 Qt 中有一个用于保存文件的 QFileDialog。 它不是 smmiting 信号。我通过连接它 QFileDialog diag(this); ... connect( d
我正在开发一个项目,我正在使用 Python 和 PyQT4 进行开发。我偶然发现了 QFileDialog 的一个有点奇怪的行为,在我的 IDE (Eclipse) 中运行项目时不会发生这种行为。
我想使用 QFileDialog 获取新目录的名称,我将在其中创建几个配置文件。 如果目录名不包含扩展部分就好了。我如何强制用户不提供带有 filename.extension 的 QFileDial
我在 Qt 5.2 中使用 QFileDialog 时遇到一点问题。当我打开对话框时,对话框会出现,但不会将任何选定的文件发回给我。在下面的代码示例中,“selectedFiles.at(0)”没有提
我正在尝试使用 QFileDialog 获取文件路径,编译很顺利,但是当我从应用程序打开对话框时,会弹出此窗口: 看起来路径中缺少字母“á”。 即使我尝试从快速访问中打开桌面,它也会弹出(顺便说一句。
我是一名优秀的程序员,十分优秀!