Sur cette page

QTextTable Class

La classe QTextTable représente un tableau dans un site QTextDocument. Plus....

En-tête : #include <QTextTable>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Héritages : QTextFrame

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

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)

Description détaillée

Un tableau est un groupe de cellules ordonnées en lignes et en colonnes. Chaque tableau contient au moins une ligne et une colonne. Chaque cellule contient un bloc et est entourée d'un cadre.

Les tableaux sont généralement créés et insérés dans un document à l'aide de la fonction QTextCursor::insertTable(). Par exemple, nous pouvons insérer un tableau de trois lignes et deux colonnes à la position actuelle du curseur dans un éditeur en utilisant les lignes de code suivantes :

    QTextCursor cursor(editor->textCursor());
    cursor.movePosition(QTextCursor::Start);

    QTextTable *table = cursor.insertTable(rows, columns, tableFormat);

Le format du tableau est soit défini lors de la création du tableau, soit modifié ultérieurement à l'aide de la fonction setFormat().

Le tableau en cours d'édition par le curseur est trouvé avec QTextCursor::currentTable(). Cela permet de modifier son format ou ses dimensions après l'avoir inséré dans un document.

La taille d'un tableau peut être modifiée avec resize(), ou en utilisant insertRows(), insertColumns(), removeRows(), ou removeColumns(). Utilisez cellAt() pour récupérer les cellules d'un tableau.

Les positions de début et de fin des lignes d'un tableau peuvent être trouvées en déplaçant un curseur dans un tableau et en utilisant les fonctions rowStart() et rowEnd() pour obtenir des curseurs au début et à la fin de chaque ligne.

Les lignes et les colonnes d'un QTextTable peuvent être fusionnées et divisées à l'aide des fonctions mergeCells() et splitCell(). Cependant, seules les cellules qui s'étendent sur plusieurs lignes ou colonnes peuvent être divisées. (La fusion ou le fractionnement n'augmente ni ne diminue le nombre de lignes et de colonnes).

Notez que si vous avez fusionné plusieurs colonnes et lignes dans une seule cellule, vous ne pourrez pas diviser la cellule fusionnée en nouvelles cellules couvrant plus d'une ligne ou d'une colonne. Pour pouvoir diviser des cellules s'étendant sur plusieurs lignes et colonnes, vous devez procéder à plusieurs itérations.

Tableau originalSupposons que nous disposions d'un tableau de 2 x 3 contenant des noms et des adresses. Pour fusionner les deux colonnes de la première ligne, nous invoquons mergeCells() avec row = 0, column = 0, numRows = 1 et numColumns = 2.
    table->mergeCells(0, 0, 1, 2);
Nous obtenons ainsi le tableau suivant. Pour diviser la première ligne du tableau en deux cellules, nous invoquons la fonction splitCell() avec numRows et numCols = 1.
    table->splitCell(0, 0, 1, 1);
Diviser le tableauNous obtenons le tableau original.

Voir aussi QTextTableFormat.

Documentation des fonctions membres

void QTextTable::appendColumns(int count)

Ajoute les colonnes count à droite du tableau.

Voir aussi insertColumns(), insertRows(), resize(), removeRows(), removeColumns() et appendRows().

void QTextTable::appendRows(int count)

Ajoute les lignes count au bas du tableau.

Voir aussi insertColumns(), insertRows(), resize(), removeRows(), removeColumns() et appendColumns().

QTextTableCell QTextTable::cellAt(int row, int column) const

Renvoie la cellule du tableau aux adresses row et column.

Voir aussi columns() et rows().

QTextTableCell QTextTable::cellAt(const QTextCursor &cursor) const

Renvoie la cellule du tableau contenant la donnée cursor.

Il s'agit d'une fonction surchargée.

QTextTableCell QTextTable::cellAt(int position) const

Renvoie la cellule du tableau qui contient le caractère à l'adresse position dans le document.

Il s'agit d'une fonction surchargée.

int QTextTable::columns() const

Renvoie le nombre de colonnes du tableau.

Voir également rows().

QTextTableFormat QTextTable::format() const

Renvoie le format du tableau.

Voir aussi setFormat().

void QTextTable::insertColumns(int index, int columns)

Insère un certain nombre de columns avant la colonne avec le index spécifié.

Voir aussi insertRows(), resize(), removeRows(), removeColumns(), appendRows() et appendColumns().

void QTextTable::insertRows(int index, int rows)

Insère un certain nombre de rows avant la ligne avec le index spécifié.

Voir aussi resize(), insertColumns(), removeRows(), removeColumns(), appendRows() et appendColumns().

void QTextTable::mergeCells(int row, int column, int numRows, int numCols)

Fusionne la cellule située aux endroits spécifiés row et column avec les cellules adjacentes en une seule cellule. La nouvelle cellule s'étendra sur numRows lignes et numCols colonnes. Cette méthode ne fait rien si numRows ou numCols est inférieur au nombre actuel de lignes ou de colonnes couvertes par la cellule.

Voir également splitCell().

void QTextTable::mergeCells(const QTextCursor &cursor)

Fusionne les cellules sélectionnées par l'adresse cursor.

Il s'agit d'une fonction surchargée.

Voir également splitCell().

void QTextTable::removeColumns(int index, int columns)

Supprime un certain nombre de columns en commençant par la colonne à l'adresse index spécifiée.

Voir aussi insertRows(), insertColumns(), removeRows(), resize(), appendRows() et appendColumns().

void QTextTable::removeRows(int index, int rows)

Supprime un certain nombre de rows en commençant par la ligne située à l'adresse index spécifiée.

Voir aussi insertRows(), insertColumns(), resize(), removeColumns(), appendRows() et appendColumns().

void QTextTable::resize(int rows, int columns)

Redimensionne le tableau pour qu'il contienne le nombre requis de rows et columns.

Voir aussi insertRows(), insertColumns(), removeRows() et removeColumns().

QTextCursor QTextTable::rowEnd(const QTextCursor &cursor) const

Renvoie un curseur pointant vers la fin de la ligne qui contient l'adresse cursor.

Voir aussi rowStart().

QTextCursor QTextTable::rowStart(const QTextCursor &cursor) const

Renvoie un curseur pointant vers le début de la ligne qui contient l'adresse cursor.

Voir aussi rowEnd().

int QTextTable::rows() const

Renvoie le nombre de lignes du tableau.

Voir également columns().

void QTextTable::setFormat(const QTextTableFormat &format)

Définit l'adresse format de la table.

Voir aussi format().

void QTextTable::splitCell(int row, int column, int numRows, int numCols)

Fractionne la cellule spécifiée à row et column en un tableau de plusieurs cellules dont les dimensions sont spécifiées par numRows et numCols.

Remarque : il n'est possible de diviser que les cellules qui s'étendent sur plusieurs lignes ou colonnes, telles que les lignes qui ont été fusionnées à l'aide de mergeCells().

Voir également mergeCells().

© 2026 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.