Qt QListWidget addItem内存泄漏
Qt QListWidget addItem memory leak
我有一个 QComboBox_1 添加了项目(图标和文本)。然后我从 QPushButton_1 clicked() 将项目添加到 QListWidget_1,如下所示。 QListWidget 强制添加一个 QListWidgetItem 作为指针值。
void MainWindow::on_QPushButton_1_clicked(){
int intSelected = ui->QComboBox_1->currentIndex();
QListWidgetItem *Itm = new QListWidgetItem(ui->QComboBox_1->itemIcon(intSelected), ui->QComboBox_1->itemText(intSelected));
ui->QListWidget_1->addItem(Itm);}
它工作正常。但是我没有删除任何代码中的指针变量“*Itm”(MainWindow 卸载或关闭)。这会造成内存泄漏吗?
我是 Qt 和 C++ 的初学者
提前致谢。
不,不会。从技术上讲,这在手册中并不完全明显,尽管人们肯定可以这么认为。
此外,在 QListWidget.cpp
的源代码中,您可以看到项目存储在内部 QListModel
class 中,它会在其析构函数中自动处理删除它们,而在其他情况下已删除。
我有一个 QComboBox_1 添加了项目(图标和文本)。然后我从 QPushButton_1 clicked() 将项目添加到 QListWidget_1,如下所示。 QListWidget 强制添加一个 QListWidgetItem 作为指针值。
void MainWindow::on_QPushButton_1_clicked(){
int intSelected = ui->QComboBox_1->currentIndex();
QListWidgetItem *Itm = new QListWidgetItem(ui->QComboBox_1->itemIcon(intSelected), ui->QComboBox_1->itemText(intSelected));
ui->QListWidget_1->addItem(Itm);}
它工作正常。但是我没有删除任何代码中的指针变量“*Itm”(MainWindow 卸载或关闭)。这会造成内存泄漏吗?
我是 Qt 和 C++ 的初学者
提前致谢。
不,不会。从技术上讲,这在手册中并不完全明显,尽管人们肯定可以这么认为。
此外,在 QListWidget.cpp
的源代码中,您可以看到项目存储在内部 QListModel
class 中,它会在其析构函数中自动处理删除它们,而在其他情况下已删除。