6 Stimmen

Wie entfernt man mehrere Zeilen aus dem QTable Widget?

Ich möchte mehrere Zeilen entfernen, die im QTableWidget ausgewählt sind. kann jemand irgendwelche Ideen haben?

5voto

Bruno Adelé Punkte 1030

Sie können mehrere Elemente auf einmal zu entfernen, die Tipps, ist beginnen Sie die Zeilen von unten zu löschen. Es tut mir leid im nicht ein VS2008-Entwickler, aber diese Lösung kann leicht zu VS2008-Code konvertiert werden. Hier der Python-Code. Entschuldigung für die späte Antwort :)

# Delete the selected mytable lines
deleteRows(self.mytable.selectionModel().selectedRows())

# DeleteRows function
def deleteRows(self, rows):
        # Get all row index
        indexes = []
        for row in rows:
            indexes.append(row.row())

        # Reverse sort rows indexes
        indexes = sorted(indexes, reverse=True)

        # Delete rows
        for rowidx in indexes:
            self.mytable.removeRow(rowidx)

0voto

Angel Koh Punkte 11327

Wenn Sie einige Zeilen am Ende der Tabelle entfernen möchten, können Sie setRowCount(int row) verwenden.

Ich habe vor einiger Zeit auch nach einer Möglichkeit gesucht, mehrere ausgewählte Zeilen an verschiedenen Stellen der Tabelle zu entfernen.

Am Ende habe ich meine ausgewählte Liste von unten nach oben durchlaufen, um meine Tabelle zu löschen.

0voto

Neox Punkte 1994
QList<QTableWidgetItem*> itemList = widget->selectedItems();
for(int i = 0; i < itemList.size(); i++) {
    widget->removeCellWidget(itemList.at(i)->row(), itemList.at(i)->column());
}

0voto

s4eed Punkte 6671

Vielleicht kann das helfen:

QList<QTableWidgetItem*> selected_itms = ur_table->selectedItems();
while( !selected_itms.isEmpty() )
{
    QTableWidgetItem *itm = selected_itms.at(0);
    ur_table->removeRow(itm->row());
    selected_itms = ui.tblw_entries->selectedItems();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X