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
-------------------------------------------- if (evento->key() == Qt::Key_Delete) { QList <int> listaFilasParaEliminar; for (int i=0;i<modelo->rowCount(QModelIndex());i++) { if (seleccion->isRowSelected(i,QModelIndex())) { listaFilasParaEliminar.push_back(i); } } eliminar(listaFilasParaEliminar); }
Y llamo a la función
Código C++:
Ver original
eliminar(const QList<int> &Lista)
La cual va borrando las filas de una en una:
Código C++:
Ver original
--------------------------- int fila; foreach (fila,Lista) { modelo->removeRows(fila, 1,QModelIndex()); } ---------------------------
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!