So löschen Sie alle Zeilen aus QTableWidget
Ich versuche zu löschen alle Zeilen aus einer QTableWidget . Hier ist, was ich versucht habe.
for ( int i = 0; i < mTestTable->rowCount(); ++i )
{
mTestTable->removeRow(i);
}
Hatte ich zwei Zeilen in meiner Tabelle. Aber das nur gelöscht, eine einzelne Zeile. Ein Grund dafür könnte sein, dass ich nicht erstellen, der die Tabelle mit einem festen Tisch Größe. Die Qt-Dokumentation für rowCount() sagt,
Diese Eigenschaft enthält die Anzahl der Zeilen in der Tabelle.
Standardmäßig für eine Tabelle gebaut, ohne Zeile und Spalte zählt,
diese Eigenschaft enthält den Wert 0.
Also, wenn das der Fall ist, was ist der beste Weg, um entfernen Sie alle Zeilen aus einer Tabelle?
InformationsquelleAutor der Frage vinayan | 2013-04-06
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur die Zeilenanzahl auf 0:
löscht es den
QTableWidgetItem
s automatisch, durch AufrufremoveRows
wie Sie sehen können, inQTableWidget
internen Modell-code:InformationsquelleAutor der Antwort alexisdm
Ich weiß nicht
QTableWidget
aber dein code scheint ein Logik-Fehler. Sie vergessen, dass, wie Sie gehen um die Schleife, Sie sind die Verringerung der Wert vonmTestTable->rowCount()
. Nach Sie haben die entfernt eine Zeilei
ein-undmTestTable->rowCount()
wird auch eins sein, damit die Schleife beendet.Ich würde es so machen
InformationsquelleAutor der Antwort john
AFAIK
setRowCount(0)
entfernt nichts. Objekte sind immer noch da, aber nicht mehr sichtbar.InformationsquelleAutor der Antwort damkrat
InformationsquelleAutor der Antwort Alex Gurkin
Der einfache Weg zum löschen von Zeilen ist, um die Zeilenanzahl zu null. Dies nutzt removeRows() intern.
Könnte man auch löschen Sie den Inhalt und entfernen Sie dann alle Zeilen.
Beide snippets verlassen der Header unberührt!
Wenn Sie benötigen, um loszuwerden, der Header auch, Sie wechseln konnte, von
clearContents()
zuclear()
.InformationsquelleAutor der Antwort Jens A. Koch
Um zu verhindern, dass eine app abstürzt, trennen Sie alle Signale von den QTableView.
InformationsquelleAutor der Antwort Rémi Debord
Ihren code nicht löschen Letzte Zeile.
Versuchen, diese ein.
In Ihrem code auf die erste Zeit
rowCount()
Wert2
und Wert deri
ist0
so dass deren löschen1
st Zeile,Aber auf das zweite mal Wert
i
erhöht mit1
aberrowCount()
Gegenzug die Anzahl der aktualisierten Zeilen, die ist jetzt 1, also ist es nicht löschen Sie die Letzte Zeile.Hoffe jetzt Sie ll klar sein.
InformationsquelleAutor der Antwort AB Bolim
Entfernt alle Elemente, die nicht in den Headern aus der Sicht. Dies wird auch entfernen Sie alle Markierungen. Die Tabelle Abmessungen bleiben die gleichen.
Entfernt alle Elemente in der Ansicht. Dies wird auch entfernen Sie alle Markierungen und überschriften.
InformationsquelleAutor der Antwort user2076767
Look in diesem post : http://forum.qt.io/topic/1715/qtablewidget-how-to-delete-a-row
InformationsquelleAutor der Antwort d.danailov
Können Sie nur noch ein leeres-Element-Modell (QStandardItemModel) auf Ihrer QTableView (myTableView):
InformationsquelleAutor der Antwort Alex