Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2015, 04:56
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Qt. Borrar filas no consecutivas

Bueno, otra vez preguntando sobre el tema modelo-vista.

Mi duda ahora es cómo borrar filas no consecutivas, ya que la función removeRows pide una fila inicial y luego la cantidad de filas consecutivas que habrán de ser borradas.

Por ahora lo he resuelto así:
Parto de una lista de int con las filas a eliminar:

Esta fila se rellena en el evento:
Código C++:
Ver original
  1. --------------------------------------------
  2. if (evento->key() == Qt::Key_Delete)
  3.     {
  4.         QList <int> listaFilasParaEliminar;
  5.         for (int i=0;i<modelo->rowCount(QModelIndex());i++)
  6.         {
  7.             if (seleccion->isRowSelected(i,QModelIndex()))
  8.             {
  9.                 listaFilasParaEliminar.push_back(i);
  10.             }
  11.         }
  12. eliminar(listaFilasParaEliminar);
  13.     }

Y llamo a la función
Código C++:
Ver original
  1. eliminar(const QList<int> &Lista)

La cual va borrando las filas de una en una:
Código C++:
Ver original
  1. ---------------------------
  2. int fila;
  3.          foreach (fila,Lista)
  4.          {
  5.              modelo->removeRows(fila, 1,QModelIndex());
  6.          }
  7. ---------------------------

Esto funciona, pero claro, lo suyo es que vaya cogiendo los rangos de filas consecutivas, pero no sé cómo se hace.

Saludos y gracias!
__________________
Mi calculadora en Qt