Windows Qt似乎到处都在泄漏内存

Windows Qt似乎到处都在泄漏内存,windows,qt,memory,memory-leaks,settext,Windows,Qt,Memory,Memory Leaks,Settext,我在Qt中有很大的内存泄漏问题 问题在于,当我运行以下方法时: qwidget->show(); qwidget->hide(); qwidget->setVisible(...); qlabel->setText(...); qwidget->setEnabled(...); 然后它会泄漏内存。 我不会动态创建任何对象。我在启动时创建了所有小部件,我只是一直隐藏和显示小部件,并在一些标签上更改文本。 当我删除这些方法时,它根本不会泄漏内存 有没有人知道为什么会这

我在Qt中有很大的内存泄漏问题

问题在于,当我运行以下方法时:

qwidget->show();
qwidget->hide();
qwidget->setVisible(...);
qlabel->setText(...);
qwidget->setEnabled(...);
然后它会泄漏内存。
我不会动态创建任何对象。我在启动时创建了所有小部件,我只是一直隐藏和显示小部件,并在一些标签上更改文本。 当我删除这些方法时,它根本不会泄漏内存

有没有人知道为什么会这样,或者有人知道引擎盖下发生了什么?还是Qt有记忆问题

我在发布模式下运行Windows7x64和Qt5.0.1x64


现在,我添加了一个测试代码:

#include "qtmemoryleaktest.h"
#include "Content_Logs.h"

QWidget* m_placeholder;
bool m_toggle;

QtMemoryLeakTest::QtMemoryLeakTest(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    m_placeholder = new Content_Logs(this);

    this->layout()->addWidget( m_placeholder );

    connect( ui.pushButton, &QPushButton::clicked, this, &QtMemoryLeakTest::toggleClick );
}

void QtMemoryLeakTest::toggleClick()
{
    if( m_toggle = !m_toggle )
    {
        m_placeholder->show();
    }
    else
    {
        m_placeholder->hide();
    }
}
每次点击按钮,内存就会增加。在20分钟内从8MB变为47MB但是如果替换内容_登录到QWidget,则不会出现内存泄漏。所以我认为Qts自恢复ui类中有一个bug?在内容日志中,我有标签、线条编辑、间隔符、表格小部件、复选框、日期时间编辑、组合框等等

内容日志中的代码:

#include "Content_Logs.h"

Content_Logs::Content_Logs( QWidget* parent = 0 )
    : QWidget( parent )
{
    ui.setupUi( this );
}

Content_Logs::~Content_Logs()
{

}

如何检测内存泄漏?windows taskmanager和Visual Studio内置Crt内存检测器。通过在隐藏/显示一些小部件和设置一些文本的按钮上每秒单击5次,它将每分钟增长1.5 Mb。“并始终更改某些标签上的文本。”到底“始终”的频率是多少?SetText每次单击可能运行6次。但这发生在我自己的名为onShwon()的方法中,它还运行其他SUFF。但是我删除了这个方法,只运行show()和hide(),然后发现这些方法泄漏的最多。如果我把它们拿走。没有内存泄漏。你能发布你的测试代码吗?