Después de que el método removeRow() de Qt tablewidget elimina una fila, ¿los elementos de la fila se liberan automáticamente o es necesario eliminarlos manualmente?
Ambos métodos han borrado la memoria. Por favor consulte SRC.
http://code.woboq.org/kde/qt4/src/gui/itemviews/qtablewidget.cpp.htmlbool?QTableModel::removeRows(int?row, ?int?count, ?const? QModelIndex?amp;)
101{
102if?(count?lt;1||?row?lt;0||?row? ?count?gt;?verticalHeaderItems. count())
103return?false;
104
105beginRemoveRows(QModelIndex(),?);
106int?i= ?tableIndex(fila, 0);
107int?n=?count?*?columnCount();
108QTableWidgetItem?*oldItem=0;
109for ?(int?j=?i;?j?lt;?n? ?i;? j)?{
110oldItem?=?tableItems.at(j);
111if?(oldItem)
112oldItem-gt;view?=0;
113delete?oldItem;
114}
115tableItems. remove(qMax(i, 0),?n);
116for?(int?v=?row;?v?lt;?row? ?count;? v)?{
117oldItem?=?verticalHeaderItems.at(v);
118if?(oldItem)
119oldItem-gt;view?=0;
120delete ?oldItem;
121}
122verticalHeaderItems.remove(row,?count);
123endRemoveRows();
124return?true ;
125}
void QTableModel::clear()
{
for (int j = 0; j lt; verticalHeaderItems .count(); j) {
if (verticalHeaderItems.at(j)){
verticalHeaderItems.at(j)-gt; p> eliminar verticalHeaderItems.at(j); // lt;--
verticalHeaderItems[j] = 0;
}
}
para (int k = 0; k lt; horizontalHeaderItems.count(); k) {
if (horizontalHeaderItems.at(k)) {
horizontalHeaderItems.at(k)-gt ;ver = 0;
eliminar
horizontalHeaderItems.at(k); // lt;--
horizontalHeaderItems[k] = 0;
}
clearContents();
}