-
Bug
-
Resolution: Fixed
-
P1: Critical
-
None
-
5.12.9, 5.15.1
-
EWDK2004 and msvc2019 19.27.29111 tools, Windows 10 pro 2004 x64
In QtCreator,Just create a qmake project, simply with ui class:
...... class MainWindow : public QMainWindow ......
Add a private QToolBar member, and one slot:
public slots: void refresh_toolbar(); private: QToolBar *tb; ......
In the MainWindow's constructor, create the tb instance and call refresh_toolbar():
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
tb = new QToolBar(this);
addToolBar(tb);
refresh_toolbar();
}
void MainWindow::refresh_toolbar()
{
static int gg = 0;
QList<QAction*> acts = tb->actions();
tb->clear(); // Here actions's memory is not released!
// This should release those actions and free the memory,
// Qt-5.9.9-mingw32 does that OK,
// Qt-5.12.9-msvc2019 and Qt-5.15.1-msvc2019 leaks memory
foreach (QAction* act, acts) {
delete act;
}
for(int i = 0; i < 150; ++i)
{
int title = gg * 1000 + i;
QAction *action = tb->addAction(QString::number(title));
action->setData(i);
action->setCheckable( true );
action->setChecked( title % 3 );
}
if(gg < 1000)
QTimer::singleShot(gg++ ? 10 : 5000, this, SLOT(refresh_toolbar()));
}
...
Build and run the program, it's memory usage (see at windows task manager) is growing up......
Qt-5.9.9-mingw32-gcc-9.3-i686 is build from source and not affected.
Qt-5.12.9-msvc2019(19.27.29111)-x86_64 is build from source, Qt-5.15.1-dynamic-msvc2019-x86_64 is from https://github.com/martinrotter/qt5-minimalistic-builds/releases/tag/5.15.1 .
- is duplicated by
-
QTBUG-88248 QObject orphaned connections soft-leak
-
- Closed
-