QTextTable Class
Die Klasse QTextTable repräsentiert eine Tabelle in einem QTextDocument. Mehr...
Kopfzeile: | #include <QTextTable> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbungen: | QTextFrame |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QTextTable ist Teil der Rich Text Processing APIs.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
void | appendColumns(int count) |
void | appendRows(int count) |
QTextTableCell | cellAt(int row, int column) const |
QTextTableCell | cellAt(const QTextCursor &cursor) const |
QTextTableCell | cellAt(int position) const |
int | columns() const |
QTextTableFormat | format() const |
void | insertColumns(int index, int columns) |
void | insertRows(int index, int rows) |
void | mergeCells(int row, int column, int numRows, int numCols) |
void | mergeCells(const QTextCursor &cursor) |
void | removeColumns(int index, int columns) |
void | removeRows(int index, int rows) |
void | resize(int rows, int columns) |
QTextCursor | rowEnd(const QTextCursor &cursor) const |
QTextCursor | rowStart(const QTextCursor &cursor) const |
int | rows() const |
void | setFormat(const QTextTableFormat &format) |
void | splitCell(int row, int column, int numRows, int numCols) |
Detaillierte Beschreibung
Eine Tabelle ist eine Gruppe von Zellen, die in Zeilen und Spalten angeordnet sind. Jede Tabelle enthält mindestens eine Zeile und eine Spalte. Jede Zelle enthält einen Block und ist von einem Rahmen umgeben.
Tabellen werden normalerweise mit der Funktion QTextCursor::insertTable() erstellt und in ein Dokument eingefügt. Mit den folgenden Codezeilen können wir zum Beispiel eine Tabelle mit drei Zeilen und zwei Spalten an der aktuellen Cursorposition in einem Editor einfügen:
QTextCursor cursor(editor->textCursor()); cursor.movePosition(QTextCursor::Start); QTextTable *table = cursor.insertTable(rows, columns, tableFormat);
Das Tabellenformat wird entweder bei der Erstellung der Tabelle festgelegt oder später mit setFormat() geändert.
Die Tabelle, die gerade vom Cursor bearbeitet wird, wird mit QTextCursor::currentTable() gefunden. Dies ermöglicht es, das Format oder die Abmessungen der Tabelle zu ändern, nachdem sie in ein Dokument eingefügt worden ist.
Die Größe einer Tabelle kann mit resize() oder durch Verwendung von insertRows(), insertColumns(), removeRows() oder removeColumns() geändert werden. Verwenden Sie cellAt(), um Tabellenzellen abzurufen.
Die Anfangs- und Endpositionen von Tabellenzeilen können ermittelt werden, indem man einen Cursor innerhalb einer Tabelle bewegt und die Funktionen rowStart() und rowEnd() verwendet, um Cursor am Anfang und Ende jeder Zeile zu erhalten.
Zeilen und Spalten innerhalb einer QTextTable können mit den Funktionen mergeCells() und splitCell() zusammengefügt und geteilt werden. Es können jedoch nur Zellen geteilt werden, die sich über mehrere Zeilen oder Spalten erstrecken. (Durch das Zusammenführen oder Aufteilen wird die Anzahl der Zeilen und Spalten nicht erhöht oder verringert).
Wenn Sie mehrere Spalten und Zeilen in einer Zelle zusammengeführt haben, können Sie die zusammengeführte Zelle nicht in neue Zellen aufteilen, die sich über mehr als eine Zeile oder Spalte erstrecken. Um Zellen, die sich über mehrere Zeilen und Spalten erstrecken, aufzuteilen, müssen Sie dies in mehreren Iterationen tun.
![]() | Angenommen, wir haben eine 2x3-Tabelle mit Namen und Adressen. Um die beiden Spalten in der ersten Zeile zusammenzuführen, rufen wir mergeCells() mit row = 0, column = 0, numRows = 1 und numColumns = 2 auf.table->mergeCells(0, 0, 1, 2); |
![]() | So erhalten wir die folgende Tabelle. Um die erste Zeile der Tabelle wieder in zwei Zellen aufzuteilen, rufen wir die Funktion splitCell() mit numRows und numCols = 1 auf.table->splitCell(0, 0, 1, 1); |
![]() | Das Ergebnis ist die ursprüngliche Tabelle. |
Siehe auch QTextTableFormat.
Dokumentation der Mitgliedsfunktionen
void QTextTable::appendColumns(int count)
Fügt count Spalten auf der rechten Seite der Tabelle an.
Siehe auch insertColumns(), insertRows(), resize(), removeRows(), removeColumns(), und appendRows().
void QTextTable::appendRows(int count)
Hängt count Zeilen am unteren Ende der Tabelle an.
Siehe auch insertColumns(), insertRows(), resize(), removeRows(), removeColumns(), und appendColumns().
QTextTableCell QTextTable::cellAt(int row, int column) const
Gibt die Tabellenzelle an der angegebenen row und column in der Tabelle zurück.
Siehe auch columns() und rows().
QTextTableCell QTextTable::cellAt(const QTextCursor &cursor) const
Dies ist eine überladene Funktion.
Gibt die Tabellenzelle zurück, die die angegebene cursor enthält.
QTextTableCell QTextTable::cellAt(int position) const
Dies ist eine überladene Funktion.
Gibt die Tabellenzelle zurück, die das Zeichen unter der angegebenen Adresse position im Dokument enthält.
int QTextTable::columns() const
Gibt die Anzahl der Spalten in der Tabelle zurück.
Siehe auch rows().
QTextTableFormat QTextTable::format() const
Gibt das Format der Tabelle zurück.
Siehe auch setFormat().
void QTextTable::insertColumns(int index, int columns)
Fügt eine Anzahl von columns vor der Spalte mit der angegebenen index ein.
Siehe auch insertRows(), resize(), removeRows(), removeColumns(), appendRows(), und appendColumns().
void QTextTable::insertRows(int index, int rows)
Fügt eine Reihe von rows vor der Zeile mit dem angegebenen index ein.
Siehe auch resize(), insertColumns(), removeRows(), removeColumns(), appendRows(), und appendColumns().
void QTextTable::mergeCells(int row, int column, int numRows, int numCols)
Verschmilzt die Zelle an der angegebenen row und column mit den angrenzenden Zellen zu einer Zelle. Die neue Zelle erstreckt sich über numRows Zeilen und numCols Spalten. Diese Methode ist wirkungslos, wenn numRows oder numCols kleiner ist als die aktuelle Anzahl der Zeilen oder Spalten, die von der Zelle überspannt werden.
Siehe auch splitCell().
void QTextTable::mergeCells(const QTextCursor &cursor)
Dies ist eine überladene Funktion.
Führt die durch die angegebene cursor ausgewählten Zellen zusammen.
Siehe auch splitCell().
void QTextTable::removeColumns(int index, int columns)
Entfernt eine Reihe von columns, beginnend mit der Spalte an der angegebenen index.
Siehe auch insertRows(), insertColumns(), removeRows(), resize(), appendRows(), und appendColumns().
void QTextTable::removeRows(int index, int rows)
Entfernt eine Reihe von rows, beginnend mit der Zeile an der angegebenen index.
Siehe auch insertRows(), insertColumns(), resize(), removeColumns(), appendRows(), und appendColumns().
void QTextTable::resize(int rows, int columns)
Ändert die Größe der Tabelle so, dass sie die erforderliche Anzahl von rows und columns enthält.
Siehe auch insertRows(), insertColumns(), removeRows(), und removeColumns().
QTextCursor QTextTable::rowEnd(const QTextCursor &cursor) const
Gibt einen Cursor zurück, der auf das Ende der Zeile zeigt, die die angegebene cursor enthält.
Siehe auch rowStart().
QTextCursor QTextTable::rowStart(const QTextCursor &cursor) const
Gibt einen Cursor zurück, der auf den Anfang der Zeile zeigt, die die angegebene cursor enthält.
Siehe auch rowEnd().
int QTextTable::rows() const
Gibt die Anzahl der Zeilen in der Tabelle zurück.
Siehe auch columns().
void QTextTable::setFormat(const QTextTableFormat &format)
Setzt die Tabelle format.
Siehe auch format().
void QTextTable::splitCell(int row, int column, int numRows, int numCols)
Teilt die angegebene Zelle unter row und column in ein Array aus mehreren Zellen mit den durch numRows und numCols angegebenen Abmessungen.
Hinweis: Es ist nur möglich, Zellen aufzuteilen, die sich über mehrere Zeilen oder Spalten erstrecken, wie z. B. Zeilen, die mit mergeCells() zusammengeführt wurden.
Siehe auch mergeCells().
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.