En esta página

QTableView Class

La clase QTableView proporciona una implementación modelo/vista por defecto de una vista de tabla. Más...

Cabecera: #include <QTableView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QAbstractItemView
Heredado por:

QTableWidget

Propiedades

Funciones públicas

QTableView(QWidget *parent = nullptr)
virtual ~QTableView()
void clearSpans()
int columnAt(int x) const
int columnSpan(int row, int column) const
int columnViewportPosition(int column) const
int columnWidth(int column) const
Qt::PenStyle gridStyle() const
QHeaderView *horizontalHeader() const
bool isColumnHidden(int column) const
bool isCornerButtonEnabled() const
bool isRowHidden(int row) const
bool isSortingEnabled() const
int rowAt(int y) const
int rowHeight(int row) const
int rowSpan(int row, int column) const
int rowViewportPosition(int row) const
void setColumnHidden(int column, bool hide)
void setColumnWidth(int column, int width)
void setCornerButtonEnabled(bool enable)
void setGridStyle(Qt::PenStyle style)
void setHorizontalHeader(QHeaderView *header)
void setRowHeight(int row, int height)
void setRowHidden(int row, bool hide)
void setSortingEnabled(bool enable)
void setSpan(int row, int column, int rowSpanCount, int columnSpanCount)
void setVerticalHeader(QHeaderView *header)
void setWordWrap(bool on)
bool showGrid() const
QHeaderView *verticalHeader() const
bool wordWrap() const

Funciones públicas reimplementadas

virtual QModelIndex indexAt(const QPoint &pos) const override
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
virtual void setModel(QAbstractItemModel *model) override
virtual void setRootIndex(const QModelIndex &index) override
virtual void setSelectionModel(QItemSelectionModel *selectionModel) override
virtual QRect visualRect(const QModelIndex &index) const override

Ranuras públicas

void hideColumn(int column)
void hideRow(int row)
void resizeColumnToContents(int column)
void resizeColumnsToContents()
void resizeRowToContents(int row)
void resizeRowsToContents()
void selectColumn(int column)
void selectRow(int row)
void setShowGrid(bool show)
void showColumn(int column)
void showRow(int row)
void sortByColumn(int column, Qt::SortOrder order)

Funciones protegidas reimplementadas

virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous) override
virtual void dropEvent(QDropEvent *event) override
virtual int horizontalOffset() const override
virtual void initViewItemOption(QStyleOptionViewItem *option) const override
virtual bool isIndexHidden(const QModelIndex &index) const override
virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
virtual void paintEvent(QPaintEvent *event) override
virtual void scrollContentsBy(int dx, int dy) override
virtual QModelIndexList selectedIndexes() const override
virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override
virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) override
virtual int sizeHintForColumn(int column) const override
virtual int sizeHintForRow(int row) const override
virtual void timerEvent(QTimerEvent *event) override
virtual void updateGeometries() override
virtual int verticalOffset() const override
virtual QSize viewportSizeHint() const override
virtual QRegion visualRegionForSelection(const QItemSelection &selection) const override

Ranuras protegidas

void columnCountChanged(int oldCount, int newCount)
void columnMoved(int column, int oldIndex, int newIndex)
void columnResized(int column, int oldWidth, int newWidth)
void rowCountChanged(int oldCount, int newCount)
void rowMoved(int row, int oldIndex, int newIndex)
void rowResized(int row, int oldHeight, int newHeight)

Descripción Detallada

Cuadro de meses e importes

QTableView implementa una vista de tabla que muestra elementos de un modelo. Esta clase se utiliza para proporcionar tablas estándar que anteriormente eran proporcionadas por la clase QTable, pero utilizando el enfoque más flexible proporcionado por la arquitectura modelo/vista de Qt.

La clase QTableView es una de las Clases Modelo/Vista y forma parte del marco modelo/vista de Qt.

QTableView implementa las interfaces definidas por la clase QAbstractItemView para permitirle mostrar datos proporcionados por modelos derivados de la clase QAbstractItemModel.

Puede navegar por las celdas de la tabla haciendo clic en una celda con el ratón, o utilizando las teclas de flecha. Debido a que QTableView habilita tabKeyNavigation por defecto, también puede pulsar Tab y Backtab para moverse de celda en celda.

Apariencia Visual

La tabla tiene una cabecera vertical que puede obtenerse utilizando la función verticalHeader(), y una cabecera horizontal que está disponible a través de la función horizontalHeader(). La altura de cada fila de la tabla puede encontrarse utilizando rowHeight(); de forma similar, la anchura de las columnas puede encontrarse utilizando columnWidth(). Dado que ambos son widgets planos, puede ocultar cualquiera de ellos utilizando sus funciones hide(). Cada cabecera se configura con sus propiedades highlightSections y sectionsClickable establecidas en true.

Las filas y columnas pueden ocultarse y mostrarse con hideRow(), hideColumn(), showRow(), y showColumn(). Se pueden seleccionar con selectRow() y selectColumn(). La tabla mostrará una cuadrícula dependiendo de la propiedad showGrid.

Los elementos mostrados en una vista de tabla, al igual que los de las otras vistas de elementos, se renderizan y editan utilizando el estándar delegates. Sin embargo, para algunas tareas a veces es útil poder insertar widgets en una tabla en su lugar. Los widgets se establecen para índices concretos con la función setIndexWidget(), y posteriormente se recuperan con indexWidget().

Tabla de nombres, direcciones y cantidadPor defecto, las celdas de una tabla no se expanden para llenar el espacio disponible.

Puede hacer que las celdas ocupen todo el espacio disponible ampliando la última sección de la cabecera. Acceda a la cabecera correspondiente utilizando horizontalHeader() o verticalHeader() y establezca la propiedad stretchLastSection de la cabecera.

Para distribuir el espacio disponible según las necesidades de espacio de cada columna o fila, llame a las funciones resizeColumnsToContents() o resizeRowsToContents() de la vista.

Sistemas de coordenadas

Para algunas formas especializadas de tablas es útil poder convertir entre índices de fila y columna y coordenadas de widget. La función rowAt() proporciona la coordenada y dentro de la vista de la fila especificada; el índice de la fila puede utilizarse para obtener la coordenada y correspondiente con rowViewportPosition(). Las funciones columnAt() y columnViewportPosition() proporcionan las operaciones de conversión equivalentes entre las coordenadas x y los índices de columna.

Véase también QTableWidget, Clases de vistas, QAbstractItemModel, QAbstractItemView, y Ejemplo de modelo de tabla.

Documentación de propiedades

cornerButtonEnabled : bool

Esta propiedad indica si el botón de la esquina superior izquierda está habilitado.

Si esta propiedad es true entonces el botón de la esquina superior izquierda de la vista tabla está habilitado. Pulsando sobre este botón se seleccionarán todas las celdas de la vista tabla.

Esta propiedad es true por defecto.

Funciones de acceso:

bool isCornerButtonEnabled() const
void setCornerButtonEnabled(bool enable)

gridStyle : Qt::PenStyle

Esta propiedad contiene el estilo de lápiz utilizado para dibujar la rejilla.

Esta propiedad contiene el estilo utilizado al dibujar la rejilla (véase showGrid).

Funciones de acceso:

Qt::PenStyle gridStyle() const
void setGridStyle(Qt::PenStyle style)

showGrid : bool

Esta propiedad indica si se muestra la rejilla

Si esta propiedad es true se dibuja una rejilla para la tabla; si la propiedad es false, no se dibuja ninguna rejilla. El valor por defecto es true.

Funciones de acceso:

bool showGrid() const
void setShowGrid(bool show)

sortingEnabled : bool

Esta propiedad indica si la ordenación está activada

Si esta propiedad es true, la ordenación está habilitada para la tabla. Si esta propiedad es false, la ordenación no está habilitada. El valor por defecto es false.

Nota: . Establecer la propiedad a true con setSortingEnabled() desencadena inmediatamente una llamada a sortByColumn() con la sección de ordenación y el orden actuales.

Funciones de acceso:

bool isSortingEnabled() const
void setSortingEnabled(bool enable)

Véase también sortByColumn().

wordWrap : bool

Esta propiedad contiene la política de ajuste de palabras del texto del elemento.

Si esta propiedad es true entonces el texto del elemento se envuelve cuando es necesario en los saltos de palabra; en caso contrario no se envuelve en absoluto. Esta propiedad es true por defecto.

Tenga en cuenta que incluso si el ajuste está activado, la celda no se expandirá para que quepa todo el texto. Las elipsis se insertarán de acuerdo con la dirección textElideMode.

Funciones de acceso:

bool wordWrap() const
void setWordWrap(bool on)

Documentación de las funciones miembro

[explicit] QTableView::QTableView(QWidget *parent = nullptr)

Construye una vista de tabla con un parent para representar los datos.

Véase también QAbstractItemModel.

[virtual noexcept] QTableView::~QTableView()

Destruye la vista de tabla.

void QTableView::clearSpans()

Elimina todos los espacios entre filas y columnas de la vista de tabla.

Véase también setSpan().

int QTableView::columnAt(int x) const

Devuelve la columna en la que se encuentra la coordenada x dada, x, en coordenadas de contenido.

Nota: Esta función devuelve -1 si la coordenada dada no es válida (no tiene columna).

Véase también rowAt().

[protected slot] void QTableView::columnCountChanged(int oldCount, int newCount)

Esta ranura se llama cada vez que se añaden o eliminan columnas. El número anterior de columnas se especifica mediante oldCount, y el nuevo número de columnas se especifica mediante newCount.

[protected slot] void QTableView::columnMoved(int column, int oldIndex, int newIndex)

Esta ranura se llama para cambiar el índice del column dado en la vista de tabla. El índice antiguo se especifica en oldIndex, y el nuevo en newIndex.

Véase también rowMoved().

[protected slot] void QTableView::columnResized(int column, int oldWidth, int newWidth)

Se llama a esta ranura para cambiar la anchura de column. La anchura antigua se especifica en oldWidth, y la nueva en newWidth.

Véase también rowResized().

int QTableView::columnSpan(int row, int column) const

Devuelve la extensión de la columna del elemento de tabla en (row, column). El valor por defecto es 1.

Véase también setSpan() y rowSpan().

int QTableView::columnViewportPosition(int column) const

Devuelve la coordenada x en coordenadas de contenido de la dirección column.

int QTableView::columnWidth(int column) const

Devuelve el ancho de la página column.

Véase también setColumnWidth(), resizeColumnToContents() y rowHeight().

[override virtual protected] void QTableView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

Reimplementa: QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous).

[override virtual protected] void QTableView::dropEvent(QDropEvent *event)

Reimplementa: QAbstractItemView::dropEvent(QDropEvent *event).

[slot] void QTableView::hideColumn(int column)

Oculta la dirección column.

Véase también showColumn() y hideRow().

[slot] void QTableView::hideRow(int row)

Oculta la dirección row.

Véase también showRow() y hideColumn().

QHeaderView *QTableView::horizontalHeader() const

Devuelve la cabecera horizontal de la vista tabla.

Véase también setHorizontalHeader(), verticalHeader() y QAbstractItemModel::headerData().

[override virtual protected] int QTableView::horizontalOffset() const

Reimplementa: QAbstractItemView::horizontalOffset() const.

Devuelve el desplazamiento horizontal de los elementos en la vista de tabla.

Tenga en cuenta que la vista de tabla utiliza las posiciones horizontales de la sección de cabecera para determinar las posiciones de las columnas en la vista.

Véase también verticalOffset().

[override virtual] QModelIndex QTableView::indexAt(const QPoint &pos) const

Reimplementa: QAbstractItemView::indexAt(const QPoint &point) const.

Devuelve la posición del índice del elemento del modelo correspondiente al elemento de la tabla en la posición pos en coordenadas de contenido.

[override virtual protected] void QTableView::initViewItemOption(QStyleOptionViewItem *option) const

Reimplementa: QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const.

bool QTableView::isColumnHidden(int column) const

Devuelve true si el column dado está oculto; en caso contrario devuelve false.

Véase también isRowHidden().

[override virtual protected] bool QTableView::isIndexHidden(const QModelIndex &index) const

Reimplementa: QAbstractItemView::isIndexHidden(const QModelIndex &index) const.

bool QTableView::isRowHidden(int row) const

Devuelve true si el row dado está oculto; en caso contrario devuelve false.

Véase también isColumnHidden().

[override virtual protected] QModelIndex QTableView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)

Reimplementa: QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modificadores).

Mueve el cursor de acuerdo con el cursorAction dado, usando la información proporcionada por el modifiers.

Véase también QAbstractItemView::CursorAction.

[override virtual protected] void QTableView::paintEvent(QPaintEvent *event)

Reimplementa: QAbstractScrollArea::paintEvent(QPaintEvent *event).

Pinta la tabla al recibir el evento de pintura dado event.

[slot] void QTableView::resizeColumnToContents(int column)

Cambia el tamaño de column en función de las sugerencias de tamaño del delegado utilizado para representar cada elemento de la columna.

Nota: Sólo se redimensionarán las columnas visibles. Reimplemente sizeHintForColumn() para redimensionar también las columnas ocultas.

Véase también resizeColumnsToContents(), sizeHintForColumn(), y QHeaderView::resizeContentsPrecision().

[slot] void QTableView::resizeColumnsToContents()

Redimensiona todas las columnas basándose en las sugerencias de tamaño del delegado utilizado para renderizar cada elemento de las columnas.

Véase también resizeColumnToContents(), sizeHintForColumn() y QHeaderView::resizeContentsPrecision().

[slot] void QTableView::resizeRowToContents(int row)

Cambia el tamaño de row en función de las sugerencias de tamaño del delegado utilizado para representar cada elemento de la fila.

Véase también resizeRowsToContents(), sizeHintForRow() y QHeaderView::resizeContentsPrecision().

[slot] void QTableView::resizeRowsToContents()

Redimensiona todas las filas basándose en las sugerencias de tamaño del delegado utilizado para renderizar cada elemento de las filas.

Véase también resizeRowToContents(), sizeHintForRow() y QHeaderView::resizeContentsPrecision().

int QTableView::rowAt(int y) const

Devuelve la fila en la que se encuentra la coordenada y dada, y, en coordenadas de contenido.

Nota: Esta función devuelve -1 si la coordenada dada no es válida (no tiene fila).

Véase también columnAt().

[protected slot] void QTableView::rowCountChanged(int oldCount, int newCount)

Esta ranura se llama cada vez que se añaden o eliminan filas. El número anterior de filas se especifica mediante oldCount, y el nuevo número de filas se especifica mediante newCount.

int QTableView::rowHeight(int row) const

Devuelve la altura de la página row.

Véase también setRowHeight(), resizeRowToContents() y columnWidth().

[protected slot] void QTableView::rowMoved(int row, int oldIndex, int newIndex)

Esta ranura se llama para cambiar el índice del row dado en la vista de tabla. El índice antiguo se especifica en oldIndex, y el nuevo en newIndex.

Véase también columnMoved().

[protected slot] void QTableView::rowResized(int row, int oldHeight, int newHeight)

Se llama a esta ranura para cambiar la altura de row. La altura antigua se especifica en oldHeight, y la nueva en newHeight.

Véase también columnResized().

int QTableView::rowSpan(int row, int column) const

Devuelve la distancia entre filas del elemento de tabla en (row, column). El valor por defecto es 1.

Véase también setSpan() y columnSpan().

int QTableView::rowViewportPosition(int row) const

Devuelve la coordenada y en coordenadas de contenido de la dirección row.

[override virtual protected] void QTableView::scrollContentsBy(int dx, int dy)

Reimplementa: QAbstractScrollArea::scrollContentsBy(int dx, int dy).

Desplaza el contenido de la vista de tabla por (dx, dy).

[override virtual] void QTableView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)

Reimplementa: QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint).

Se asegura de que el index dado es visible en la vista de tabla, desplazándose si es necesario.

[slot] void QTableView::selectColumn(int column)

Selecciona el column dado en la vista de tabla si el SelectionMode y SelectionBehavior actuales permiten seleccionar columnas.

Véase también selectRow().

[slot] void QTableView::selectRow(int row)

Selecciona el row dado en la vista de tabla si el SelectionMode y SelectionBehavior actuales permiten seleccionar filas.

Véase también selectColumn().

[override virtual protected] QModelIndexList QTableView::selectedIndexes() const

Reimplementa: QAbstractItemView::selectedIndexes() const.

[override virtual protected] void QTableView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

Reimplementa: QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected).

void QTableView::setColumnHidden(int column, bool hide)

Si hide es verdadero se ocultará el column dado; en caso contrario se mostrará.

Véase también isColumnHidden() y setRowHidden().

void QTableView::setColumnWidth(int column, int width)

Establece la anchura del column dado como width.

Véase también columnWidth().

void QTableView::setHorizontalHeader(QHeaderView *header)

Establece el widget a utilizar para la cabecera horizontal en header.

Véase también horizontalHeader() y setVerticalHeader().

[override virtual] void QTableView::setModel(QAbstractItemModel *model)

Reimplementa: QAbstractItemView::setModel(QAbstractItemModel *model).

[override virtual] void QTableView::setRootIndex(const QModelIndex &index)

Reimplementa: QAbstractItemView::setRootIndex(const QModelIndex &index).

void QTableView::setRowHeight(int row, int height)

Establece la altura del row dado como height.

Véase también rowHeight().

void QTableView::setRowHidden(int row, bool hide)

Si hide es verdadero row se ocultará, en caso contrario se mostrará.

Véase también isRowHidden() y setColumnHidden().

[override virtual protected] void QTableView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)

Reimplementa: QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

Selecciona los elementos dentro del rect dado y de acuerdo con la selección especificada flags.

[override virtual] void QTableView::setSelectionModel(QItemSelectionModel *selectionModel)

Reimplementa: QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel).

void QTableView::setSortingEnabled(bool enable)

Si enable es true, habilita la ordenación para la tabla y lanza inmediatamente una llamada a sortByColumn() con la sección y orden de ordenación actuales.

Nota: Función setter para la propiedad sortingEnabled.

Véase también isSortingEnabled().

void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)

Establece la extensión del elemento de tabla en (row, column) al número de filas y columnas especificado por (rowSpanCount, columnSpanCount).

Véase también rowSpan() y columnSpan().

void QTableView::setVerticalHeader(QHeaderView *header)

Establece el widget a utilizar para la cabecera vertical en header.

Véase también verticalHeader() y setHorizontalHeader().

[slot] void QTableView::showColumn(int column)

Mostrar el column dado .

Véase también hideColumn() y showRow().

[slot] void QTableView::showRow(int row)

Mostrar el row dado .

Véase también hideRow() y showColumn().

[override virtual protected] int QTableView::sizeHintForColumn(int column) const

Reimplementa: QAbstractItemView::sizeHintForColumn(int columna) const.

Devuelve la sugerencia de tamaño para la anchura de column o -1 si no hay modelo.

Si necesita establecer la anchura de una columna dada en un valor fijo, llame a QHeaderView::resizeSection() en la cabecera horizontal de la tabla.

Si reimplementa esta función en una subclase, tenga en cuenta que el valor que devuelva se utilizará cuando se llame a resizeColumnToContents() o QHeaderView::resizeSections(). Si la cabecera horizontal o el delegado de elemento requieren una anchura de columna mayor, se utilizará dicha anchura.

Véase también QWidget::sizeHint, horizontalHeader(), y QHeaderView::resizeContentsPrecision().

[override virtual protected] int QTableView::sizeHintForRow(int row) const

Reimplementa: QAbstractItemView::sizeHintForRow(int fila) const.

Devuelve la sugerencia de tamaño para la altura de row o -1 si no hay modelo.

Si necesita establecer la altura de una fila dada a un valor fijo, llame a QHeaderView::resizeSection() en la cabecera vertical de la tabla.

Si reimplementa esta función en una subclase, tenga en cuenta que el valor que devuelve sólo se utiliza cuando se llama a resizeRowToContents(). En ese caso, si la cabecera vertical o el delegado de elemento requieren una altura de fila mayor, se utilizará esa anchura en su lugar.

Véase también QWidget::sizeHint, verticalHeader(), y QHeaderView::resizeContentsPrecision().

[slot] void QTableView::sortByColumn(int column, Qt::SortOrder order)

Ordena el modelo según los valores de column y order.

column puede ser -1, en cuyo caso no se mostrará ningún indicador de ordenación y el modelo volverá a su orden natural, sin ordenar. Tenga en cuenta que no todos los modelos admiten esta opción e incluso pueden bloquearse en este caso.

Véase también sortingEnabled.

[override virtual protected] void QTableView::timerEvent(QTimerEvent *event)

Reimplementa: QAbstractItemView::timerEvent(QTimerEvent *event).

[override virtual protected] void QTableView::updateGeometries()

Reimplementa: QAbstractItemView::updateGeometries().

QHeaderView *QTableView::verticalHeader() const

Devuelve la cabecera vertical de la vista tabla.

Véase también setVerticalHeader(), horizontalHeader() y QAbstractItemModel::headerData().

[override virtual protected] int QTableView::verticalOffset() const

Reimplementa: QAbstractItemView::verticalOffset() const.

Devuelve el desplazamiento vertical de los elementos en la vista de tabla.

Tenga en cuenta que la vista de tabla utiliza las posiciones verticales de la sección de cabecera para determinar las posiciones de las filas en la vista.

Véase también horizontalOffset().

[override virtual protected] QSize QTableView::viewportSizeHint() const

Reimplementa: QAbstractItemView::viewportSizeHint() const.

[override virtual] QRect QTableView::visualRect(const QModelIndex &index) const

Reimplementa: QAbstractItemView::visualRect(const QModelIndex &index) const.

Devuelve el rectángulo de la vista ocupado por el índice index. Si el índice está oculto en la vista devolverá un null QRect.

[override virtual protected] QRegion QTableView::visualRegionForSelection(const QItemSelection &selection) const

Reimplementa: QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const.

Devuelve el rectángulo de la ventana gráfica de los elementos en el selection dado.

Desde 4.7, la región devuelta sólo contiene rectángulos que intersecan (o están incluidos en) la ventana gráfica.

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