我使用QP 5.7作为QProgressBar的GUI应用程序。我怀疑可能会有内存泄漏,因为内存使用量在运行时增加了大约50MB/s。我可以将问题缩小为一行代码。QProgressBar :: setValue(int)导致内存泄漏?
QProgressBar *pbarQuality;
...
int curQuality = data.getQuality();
if (curQuality < 0) {
curQuality = 0;
qWarning("Value set to 0. ");
}
if (curQuality > 100) {
curQuality = 100;
qWarning("Value set to 100. ");
}
ui.pbarQuality->setValue(curQuality); //The memory problem doesn't occur when this single line is commented out
QProgressBar(pbarQuality)的值仅用于显示。它不在别的地方使用。
我觉得这是一个非常奇怪的行为。我错过了什么吗?
下面是自动生成的代码由Qt设计:
pbarQuality = new QProgressBar(frame_5);
pbarQuality->setObjectName(QStringLiteral("pbarQuality"));
pbarQuality->setGeometry(QRect(10, 50, 130, 23));
pbarQuality->setValue(24);
向我们展示如何获得那个'* pbarquality'指针的值 – SingerOfTheFall
使用valgrind来验证Qt是否有错误,而不是您的代码。它会告诉你确切的泄漏来自哪里。 –
@SingerOfTheFall我从来没有设置或得到它。我使用Qt Designer来创建GUI。 – dcfyg