我如何获得这些信息:
我认为Qt应该有内存选项,这与平台无关,但我找不到它.那么当我想创建一个显示内存状态的独立于平台的应用程序时,我该怎么办?
Dav*_*eer 46
不幸的是,Qt没有内置任何东西.您必须按平台执行此操作.
以下是一些可以帮助您入门的示例.我上周必须在我的一个应用程序中实现这一点.以下代码仍处于开发阶段; 可能存在错误或泄漏,但它可能至少指向正确的方向.我只对总物理RAM感兴趣,但其他值也以相同的方式提供.(除了当前应用程序使用的内存......不确定那个.)
Windows(GlobalMemoryStatusEx)
MEMORYSTATUSEX memory_status;
ZeroMemory(&memory_status, sizeof(MEMORYSTATUSEX));
memory_status.dwLength = sizeof(MEMORYSTATUSEX);
if (GlobalMemoryStatusEx(&memory_status)) {
system_info.append(
QString("RAM: %1 MB")
.arg(memory_status.ullTotalPhys / (1024 * 1024)));
} else {
system_info.append("Unknown RAM");
}
Run Code Online (Sandbox Code Playgroud)
Linux(/ proc/meminfo)
QProcess p;
p.start("awk", QStringList() << "/MemTotal/ { print $2 }" << "/proc/meminfo");
p.waitForFinished();
QString memory = p.readAllStandardOutput();
system_info.append(QString("; RAM: %1 MB").arg(memory.toLong() / 1024));
p.close();
Run Code Online (Sandbox Code Playgroud)
Mac(sysctl)
QProcess p;
p.start("sysctl", QStringList() << "kern.version" << "hw.physmem");
p.waitForFinished();
QString system_info = p.readAllStandardOutput();
p.close();
Run Code Online (Sandbox Code Playgroud)