我使用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