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: |
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 ¤t, 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

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.
Navegación
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().
![]() | Por 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 ¤t, const QModelIndex &previous)
Reimplementa: QAbstractItemView::currentChanged(const QModelIndex ¤t, 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.
