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

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.

Ursprüngliche TabelleAngenommen, 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);
Tabelle teilenDas 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.