En esta página

QAbstractItemView Class

La clase QAbstractItemView proporciona la funcionalidad básica para las clases de vista de elementos. Más...

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

QColumnView, QHeaderView, QListView, QTableView, y QTreeView

Tipos públicos

enum DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove }
enum EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, …, AllEditTriggers }
flags EditTriggers
enum ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter }
enum ScrollMode { ScrollPerItem, ScrollPerPixel }
enum SelectionBehavior { SelectItems, SelectRows, SelectColumns }
enum SelectionMode { SingleSelection, ContiguousSelection, ExtendedSelection, MultiSelection, NoSelection }

Propiedades

Funciones públicas

QAbstractItemView(QWidget *parent = nullptr)
virtual ~QAbstractItemView()
bool alternatingRowColors() const
int autoScrollMargin() const
void closePersistentEditor(const QModelIndex &index)
QModelIndex currentIndex() const
Qt::DropAction defaultDropAction() const
QAbstractItemView::DragDropMode dragDropMode() const
bool dragDropOverwriteMode() const
bool dragEnabled() const
QAbstractItemView::EditTriggers editTriggers() const
bool hasAutoScroll() const
QAbstractItemView::ScrollMode horizontalScrollMode() const
QSize iconSize() const
virtual QModelIndex indexAt(const QPoint &point) const = 0
QWidget *indexWidget(const QModelIndex &index) const
bool isPersistentEditorOpen(const QModelIndex &index) const
QAbstractItemDelegate *itemDelegate() const
QAbstractItemDelegate *itemDelegateForColumn(int column) const
(since 6.0) virtual QAbstractItemDelegate *itemDelegateForIndex(const QModelIndex &index) const
QAbstractItemDelegate *itemDelegateForRow(int row) const
virtual void keyboardSearch(const QString &search)
Qt::MatchFlags keyboardSearchFlags() const
QAbstractItemModel *model() const
void openPersistentEditor(const QModelIndex &index)
void resetHorizontalScrollMode()
void resetVerticalScrollMode()
QModelIndex rootIndex() const
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) = 0
QAbstractItemView::SelectionBehavior selectionBehavior() const
QAbstractItemView::SelectionMode selectionMode() const
QItemSelectionModel *selectionModel() const
void setAlternatingRowColors(bool enable)
void setAutoScroll(bool enable)
void setAutoScrollMargin(int margin)
void setDefaultDropAction(Qt::DropAction dropAction)
void setDragDropMode(QAbstractItemView::DragDropMode behavior)
void setDragDropOverwriteMode(bool overwrite)
void setDragEnabled(bool enable)
void setDropIndicatorShown(bool enable)
void setEditTriggers(QAbstractItemView::EditTriggers triggers)
void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode)
void setIconSize(const QSize &size)
void setIndexWidget(const QModelIndex &index, QWidget *widget)
void setItemDelegate(QAbstractItemDelegate *delegate)
void setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)
void setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
void setKeyboardSearchFlags(Qt::MatchFlags searchFlags)
virtual void setModel(QAbstractItemModel *model)
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)
void setSelectionMode(QAbstractItemView::SelectionMode mode)
virtual void setSelectionModel(QItemSelectionModel *selectionModel)
void setTabKeyNavigation(bool enable)
void setTextElideMode(Qt::TextElideMode mode)
void setUpdateThreshold(int threshold)
void setVerticalScrollMode(QAbstractItemView::ScrollMode mode)
bool showDropIndicator() const
virtual int sizeHintForColumn(int column) const
QSize sizeHintForIndex(const QModelIndex &index) const
virtual int sizeHintForRow(int row) const
bool tabKeyNavigation() const
Qt::TextElideMode textElideMode() const
int updateThreshold() const
QAbstractItemView::ScrollMode verticalScrollMode() const
virtual QRect visualRect(const QModelIndex &index) const = 0

Funciones públicas reimplementadas

virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override

Ranuras públicas

void clearSelection()
void edit(const QModelIndex &index)
virtual void reset()
void scrollToBottom()
void scrollToTop()
virtual void selectAll()
void setCurrentIndex(const QModelIndex &index)
virtual void setRootIndex(const QModelIndex &index)
void update(const QModelIndex &index)

Señales

void activated(const QModelIndex &index)
void clicked(const QModelIndex &index)
void doubleClicked(const QModelIndex &index)
void entered(const QModelIndex &index)
void iconSizeChanged(const QSize &size)
void pressed(const QModelIndex &index)
void viewportEntered()

Tipos protegidos

enum CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, …, MovePrevious }
enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport }
enum State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, …, AnimatingState }

Funciones protegidas

QPoint dirtyRegionOffset() const
QAbstractItemView::DropIndicatorPosition dropIndicatorPosition() const
virtual bool edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
void executeDelayedItemsLayout()
virtual int horizontalOffset() const = 0
(since 6.0) virtual void initViewItemOption(QStyleOptionViewItem *option) const
virtual bool isIndexHidden(const QModelIndex &index) const = 0
virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0
void scheduleDelayedItemsLayout()
void scrollDirtyRegion(int dx, int dy)
virtual QModelIndexList selectedIndexes() const
virtual QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
void setDirtyRegion(const QRegion &region)
virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) = 0
void setState(QAbstractItemView::State state)
virtual void startDrag(Qt::DropActions supportedActions)
QAbstractItemView::State state() const
virtual int verticalOffset() const = 0
virtual QRegion visualRegionForSelection(const QItemSelection &selection) const = 0

Funciones protegidas reimplementadas

virtual void dragEnterEvent(QDragEnterEvent *event) override
virtual void dragLeaveEvent(QDragLeaveEvent *event) override
virtual void dragMoveEvent(QDragMoveEvent *event) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *event) override
virtual bool eventFilter(QObject *object, QEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void inputMethodEvent(QInputMethodEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void mouseDoubleClickEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void timerEvent(QTimerEvent *event) override
virtual bool viewportEvent(QEvent *event) override
virtual QSize viewportSizeHint() const override

Ranuras protegidas

virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)
virtual void commitData(QWidget *editor)
virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous)
virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())
virtual void editorDestroyed(QObject *editor)
virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
virtual void rowsInserted(const QModelIndex &parent, int inicio, int fin)
virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
virtual void updateGeometries()

Descripción detallada

QAbstractItemView clase es la clase base para cada vista estándar que utiliza un QAbstractItemModel. QAbstractItemView es una clase abstracta y no puede ser instanciada. Proporciona una interfaz estándar para interoperar con los modelos a través del mecanismo de señales y ranuras, permitiendo a las subclases mantenerse al día con los cambios en sus modelos. Esta clase proporciona soporte estándar para la navegación por teclado y ratón, desplazamiento de la ventana gráfica, edición de elementos y selecciones. La navegación por teclado implementa esta funcionalidad:

TeclasFuncionalidad
Teclas de flechaCambia el elemento actual y lo selecciona.
Teclas Ctrl+FlechaCambia el elemento actual pero no lo selecciona.
Mayús+FlechaCambia el elemento actual y lo selecciona. Los elementos seleccionados anteriormente no se deseleccionan.
Ctrl+EspacioCambia la selección del elemento actual.
Tabulador/AtrásCambia el elemento actual al elemento siguiente/anterior.
Inicio/FinSelecciona el primer/último elemento del modelo.
Página arriba/Página abajoDesplaza las filas mostradas hacia arriba/abajo según el número de filas visibles en la vista.
Ctrl+ASelecciona todos los elementos del modelo.

Tenga en cuenta que la tabla anterior asume que selection mode permite las operaciones. Por ejemplo, no se pueden seleccionar elementos si el modo de selección es QAbstractItemView::NoSelection.

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

Las clases de vista que heredan de QAbstractItemView sólo necesitan implementar su propia funcionalidad específica de la vista, como dibujar ítems, devolver la geometría de los ítems, encontrar ítems, etc.

QAbstractItemView proporciona ranuras comunes como edit() y setCurrentIndex(). También se proporcionan muchas ranuras protegidas, incluyendo dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), selectionChanged(), y currentChanged().

El elemento raíz es devuelto por rootIndex(), y el elemento actual por currentIndex(). Para asegurarse de que un elemento es visible, utilice scrollTo().

Algunas de las funciones de QAbstractItemView están relacionadas con el desplazamiento, por ejemplo setHorizontalScrollMode() y setVerticalScrollMode(). Para establecer el rango de las barras de desplazamiento, puedes, por ejemplo, reimplementar la función resizeEvent() de la vista:

void MyView::resizeEvent(QResizeEvent *event) {
    horizontalScrollBar()->setRange(0, realWidth - width());
    ...
}

Tenga en cuenta que el rango no se actualiza hasta que se muestra el widget.

Varias otras funciones están relacionadas con el control de selección; por ejemplo setSelectionMode(), y setSelectionBehavior(). Esta clase proporciona un modelo de selección predeterminado con el que trabajar (selectionModel()), pero puede sustituirse utilizando setSelectionModel() con una instancia de QItemSelectionModel.

Para un control completo sobre la visualización y edición de elementos se puede especificar un delegado con setItemDelegate().

QAbstractItemView proporciona muchas funciones protegidas. Algunas tienen que ver con la edición, por ejemplo, edit(), y commitData(), mientras que otras son manejadoras de eventos de teclado y ratón.

Nota: Si heredas QAbstractItemView y pretendes actualizar el contenido de la ventana gráfica, deberías utilizar viewport->update() en lugar de update() ya que todas las operaciones de pintado tienen lugar en la ventana gráfica.

Vea también Clases de Vista, Programación Modelo/Vista, y QAbstractItemModel.

Documentación de tipos de miembros

enum QAbstractItemView::CursorAction

Este enum describe las diferentes formas de navegar entre elementos,

ConstanteValorDescripción
QAbstractItemView::MoveUp0Moverse al elemento situado encima del actual.
QAbstractItemView::MoveDown1Moverse al elemento situado debajo del actual.
QAbstractItemView::MoveLeft2Mover al elemento a la izquierda del elemento actual.
QAbstractItemView::MoveRight3Mover al elemento a la derecha del elemento actual.
QAbstractItemView::MoveHome4Mover al elemento de la esquina superior izquierda.
QAbstractItemView::MoveEnd5Mover al elemento de la esquina inferior derecha.
QAbstractItemView::MovePageUp6Subir una página por encima del elemento actual.
QAbstractItemView::MovePageDown7Avanzar una página por debajo del elemento actual.
QAbstractItemView::MoveNext8Ir al elemento siguiente al actual.
QAbstractItemView::MovePrevious9Ir al elemento anterior al actual.

Véase también moveCursor().

enum QAbstractItemView::DragDropMode

Describe los distintos eventos de arrastrar y soltar sobre los que puede actuar la vista. Por defecto, la vista no permite arrastrar ni soltar (NoDragDrop).

ConstanteValorDescripción
QAbstractItemView::NoDragDrop0No permite arrastrar ni soltar.
QAbstractItemView::DragOnly1La vista admite arrastrar sus propios elementos
QAbstractItemView::DropOnly2La vista acepta soltar
QAbstractItemView::DragDrop3La vista admite tanto arrastrar como soltar
QAbstractItemView::InternalMove4La vista acepta operaciones de mover(no copiar) sólo desde sí misma.

Tenga en cuenta que el modelo utilizado debe soportar las operaciones de arrastrar y soltar.

Véase también setDragDropMode() y Uso de la función arrastrar y soltar con vistas de elementos.

enum QAbstractItemView::DropIndicatorPosition

Este enum indica la posición del indicador de caída en relación con el índice en la posición actual del ratón:

ConstanteValorDescripción
QAbstractItemView::OnItem0El elemento se soltará sobre el índice.
QAbstractItemView::AboveItem1El elemento se soltará por encima del índice.
QAbstractItemView::BelowItem2El elemento se soltará por debajo del índice.
QAbstractItemView::OnViewport3El elemento se soltará en una región de la ventana gráfica en la que no haya ningún elemento. La forma en que cada vista gestiona los elementos que se sueltan en la ventana depende del comportamiento del modelo subyacente en uso.

enum QAbstractItemView::EditTrigger
flags QAbstractItemView::EditTriggers

Este enum describe acciones que iniciarán la edición de ítems.

ConstanteValorDescripción
QAbstractItemView::NoEditTriggers0No es posible editar.
QAbstractItemView::CurrentChanged1La edición se inicia cuando cambia el elemento actual.
QAbstractItemView::DoubleClicked2La edición comienza cuando se hace doble clic en un elemento.
QAbstractItemView::SelectedClicked4La edición se inicia al hacer clic en un elemento ya seleccionado.
QAbstractItemView::EditKeyPressed8La edición comienza cuando se pulsa la tecla de edición de la plataforma sobre un elemento.
QAbstractItemView::AnyKeyPressed16La edición comienza cuando se pulsa cualquier tecla sobre un elemento.
QAbstractItemView::AllEditTriggers31La edición se inicia para todas las acciones anteriores.

El tipo EditTriggers es un typedef para QFlags<EditTrigger>. Almacena una combinación OR de valores EditTrigger.

enum QAbstractItemView::ScrollHint

ConstanteValorDescripción
QAbstractItemView::EnsureVisible0Desplácese para asegurarse de que el elemento es visible.
QAbstractItemView::PositionAtTop1Desplácese para colocar el elemento en la parte superior de la ventana gráfica.
QAbstractItemView::PositionAtBottom2Desplácese para colocar el elemento en la parte inferior de la ventana gráfica.
QAbstractItemView::PositionAtCenter3Desplácese para colocar el elemento en el centro de la ventana gráfica.

enum QAbstractItemView::ScrollMode

Describe cómo debe comportarse la barra de desplazamiento. Cuando se establece el modo de desplazamiento a ScrollPerPixel el tamaño de paso único se ajustará automáticamente a menos que se haya establecido explícitamente utilizando setSingleStep(). El ajuste automático puede restaurarse estableciendo el tamaño de paso único en -1.

ConstanteValorDescripción
QAbstractItemView::ScrollPerItem0La vista desplazará el contenido de un elemento cada vez.
QAbstractItemView::ScrollPerPixel1La vista desplazará el contenido un píxel cada vez.

enum QAbstractItemView::SelectionBehavior

ConstanteValorDescripción
QAbstractItemView::SelectItems0Selección de elementos individuales.
QAbstractItemView::SelectRows1Seleccionar sólo filas.
QAbstractItemView::SelectColumns2Seleccionar sólo columnas.

enum QAbstractItemView::SelectionMode

Este enum indica cómo responde la vista a las selecciones del usuario:

ConstanteValorDescripción
QAbstractItemView::SingleSelection1Cuando el usuario selecciona un elemento, cualquier elemento ya seleccionado se deselecciona. El usuario puede deseleccionar el elemento seleccionado pulsando la tecla Ctrl al hacer clic en el elemento seleccionado.
QAbstractItemView::ContiguousSelection4Cuando el usuario selecciona un elemento de la forma habitual, se borra la selección y se selecciona el nuevo elemento. Sin embargo, si el usuario pulsa la tecla Mayús mientras hace clic en un elemento, todos los elementos entre el elemento actual y el elemento seleccionado se seleccionan o deseleccionan, dependiendo del estado del elemento seleccionado.
QAbstractItemView::ExtendedSelection3Cuando el usuario selecciona un elemento de la forma habitual, se borra la selección y se selecciona el nuevo elemento. Sin embargo, si el usuario pulsa la tecla Ctrl al hacer clic en un elemento, el elemento sobre el que se ha hecho clic se conmuta y todos los demás elementos se dejan intactos. Si el usuario pulsa la tecla Mayús mientras hace clic en un elemento, todos los elementos entre el elemento actual y el elemento seleccionado se seleccionan o deseleccionan, dependiendo del estado del elemento seleccionado. Se pueden seleccionar varios elementos arrastrando el ratón sobre ellos.
QAbstractItemView::MultiSelection2Cuando el usuario selecciona un elemento de la forma habitual, el estado de selección de ese elemento se conmuta y los demás elementos se dejan como están. Se pueden seleccionar varios elementos arrastrando el ratón sobre ellos.
QAbstractItemView::NoSelection0Los elementos no pueden seleccionarse.

Los modos más utilizados son SingleSelection y ExtendedSelection.

enum QAbstractItemView::State

Describe los diferentes estados en los que puede estar la vista. Normalmente sólo es interesante cuando reimplementas tu propia vista.

ConstanteValorDescripción
QAbstractItemView::NoState0Es el estado por defecto.
QAbstractItemView::DraggingState1El usuario está arrastrando elementos.
QAbstractItemView::DragSelectingState2El usuario está seleccionando elementos.
QAbstractItemView::EditingState3El usuario está editando un elemento en un editor de widgets.
QAbstractItemView::ExpandingState4El usuario está abriendo una rama de elementos.
QAbstractItemView::CollapsingState5El usuario está cerrando una rama de elementos.
QAbstractItemView::AnimatingState6La vista de elementos está realizando una animación.

Documentación de propiedades

alternatingRowColors : bool

Esta propiedad indica si se dibuja el fondo utilizando colores alternos.

Si esta propiedad es true, el fondo del elemento se dibujará utilizando QPalette::Base y QPalette::AlternateBase; en caso contrario el fondo se dibujará utilizando el color QPalette::Base.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool alternatingRowColors() const
void setAlternatingRowColors(bool enable)

autoScroll : bool

Esta propiedad indica si está habilitado el autodesplazamiento en eventos de arrastre.

Si esta propiedad está establecida a true (por defecto), QAbstractItemView desplaza automáticamente el contenido de la vista si el usuario arrastra dentro de los 16 píxeles del borde de la vista. Si el elemento actual cambia, la vista se desplazará automáticamente para asegurarse de que el elemento actual es totalmente visible.

Esta propiedad sólo funciona si la ventana gráfica acepta descensos. El desplazamiento automático se desactiva estableciendo esta propiedad a false.

Funciones de acceso:

bool hasAutoScroll() const
void setAutoScroll(bool enable)

autoScrollMargin : int

Esta propiedad mantiene el tamaño del área cuando se activa el autodesplazamiento

Esta propiedad controla el tamaño del área en el borde de la ventana gráfica que activa el desplazamiento automático. El valor por defecto es de 16 píxeles.

Funciones de acceso:

int autoScrollMargin() const
void setAutoScrollMargin(int margin)

defaultDropAction : Qt::DropAction

Esta propiedad contiene la acción de soltar que se utilizará por defecto en QAbstractItemView::drag().

Si la propiedad no está establecida, la acción de soltar es CopyAction cuando las acciones soportadas soportan CopyAction.

Funciones de acceso:

Qt::DropAction defaultDropAction() const
void setDefaultDropAction(Qt::DropAction dropAction)

Véase también showDropIndicator y dragDropOverwriteMode.

dragDropMode : DragDropMode

Esta propiedad contiene el evento de arrastrar y soltar sobre el que actuará la vista

Funciones de acceso:

QAbstractItemView::DragDropMode dragDropMode() const
void setDragDropMode(QAbstractItemView::DragDropMode behavior)

Ver también showDropIndicator y dragDropOverwriteMode.

dragDropOverwriteMode : bool

Esta propiedad mantiene el comportamiento de arrastrar y soltar de la vista.

Si su valor es true, los datos seleccionados sobrescribirán los datos del elemento existente cuando se suelten, mientras que al mover los datos se borrará el elemento. Si su valor es false, los datos seleccionados se insertarán como un nuevo elemento al soltarlos. Cuando se mueven los datos, también se elimina el elemento.

El valor por defecto es false, como en las subclases QListView y QTreeView. En la subclase QTableView, en cambio, la propiedad se ha fijado en true.

Nota: Esto no pretende evitar la sobreescritura de elementos. La implementación de flags() del modelo debería hacerlo no devolviendo Qt::ItemIsDropEnabled.

Funciones de acceso:

bool dragDropOverwriteMode() const
void setDragDropOverwriteMode(bool overwrite)

Véase también dragDropMode.

dragEnabled : bool

Esta propiedad indica si la vista permite arrastrar sus propios elementos

Funciones de acceso:

bool dragEnabled() const
void setDragEnabled(bool enable)

Ver también showDropIndicator, DragDropMode, dragDropOverwriteMode, y acceptDrops.

editTriggers : EditTriggers

Esta propiedad contiene las acciones que iniciarán la edición del elemento.

Esta propiedad es una selección de indicadores definidos por EditTrigger, combinados mediante el operador OR. La vista sólo iniciará la edición de un ítem si la acción realizada está establecida en esta propiedad.

El valor por defecto es

Funciones de acceso:

QAbstractItemView::EditTriggers editTriggers() const
void setEditTriggers(QAbstractItemView::EditTriggers triggers)

horizontalScrollMode : ScrollMode

cómo la vista desplaza sus contenidos en dirección horizontal

Esta propiedad controla cómo la vista desplaza su contenido horizontalmente. El desplazamiento puede hacerse por píxel o por elemento. Su valor por defecto proviene del estilo a través de la sugerencia de estilo QStyle::SH_ItemView_ScrollMode.

Funciones de acceso:

QAbstractItemView::ScrollMode horizontalScrollMode() const
void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode)
void resetHorizontalScrollMode()

iconSize : QSize

Esta propiedad contiene el tamaño de los iconos de los elementos.

Establecer esta propiedad cuando la vista es visible hará que los ítems se dispongan de nuevo.

Funciones de acceso:

QSize iconSize() const
void setIconSize(const QSize &size)

Señal del notificador:

void iconSizeChanged(const QSize &size)

[since 6.11] keyboardSearchFlags : Qt::MatchFlags

Esta propiedad determina cómo la implementación por defecto de keyboardSearch() compara la cadena dada con los datos del modelo.

El valor por defecto es Qt::MatchStartsWith|Qt::MatchWrap.

Esta propiedad se introdujo en Qt 6.11.

Funciones de acceso:

Qt::MatchFlags keyboardSearchFlags() const
void setKeyboardSearchFlags(Qt::MatchFlags searchFlags)

Véase también keyboardSearch() y QAbstractItemModel::match().

selectionBehavior : SelectionBehavior

Esta propiedad contiene el comportamiento de selección que utiliza la vista

Esta propiedad contiene si las selecciones se realizan en términos de elementos individuales, filas o columnas.

Funciones de acceso:

QAbstractItemView::SelectionBehavior selectionBehavior() const
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)

Véase también SelectionMode y SelectionBehavior.

selectionMode : SelectionMode

Esta propiedad determina el modo de selección de la vista.

Esta propiedad controla si el usuario puede seleccionar uno o muchos elementos y, en selecciones de muchos elementos, si la selección debe ser un rango continuo de elementos.

Funciones de acceso:

QAbstractItemView::SelectionMode selectionMode() const
void setSelectionMode(QAbstractItemView::SelectionMode mode)

Véase también SelectionMode y SelectionBehavior.

showDropIndicator : bool

Esta propiedad mantiene si el indicador de soltar se muestra cuando se arrastran elementos y se sueltan.

Funciones de acceso:

bool showDropIndicator() const
void setDropIndicatorShown(bool enable)

Véase también dragEnabled, DragDropMode, dragDropOverwriteMode, y acceptDrops.

tabKeyNavigation : bool

Esta propiedad indica si está activada la navegación de elementos con tabulación y retrotabulación.

Funciones de acceso:

bool tabKeyNavigation() const
void setTabKeyNavigation(bool enable)

textElideMode : Qt::TextElideMode

Esta propiedad mantiene la posición del "..." en el texto elidido.

El valor por defecto para todas las vistas de elementos es Qt::ElideRight.

Funciones de acceso:

Qt::TextElideMode textElideMode() const
void setTextElideMode(Qt::TextElideMode mode)

[since 6.9] updateThreshold : int

Esta propiedad contiene la cantidad de índices cambiados para desencadenar directamente una actualización completa de la vista dentro de dataChanged().

El algoritmo dentro de dataChanged() intenta minimizar una actualización completa de la vista calculando si los índices cambiados son visibles o no. Para modelos muy grandes, con muchos cambios grandes, esto puede llevar más tiempo que la actualización real, por lo que es contraproducente. Esta propiedad permite controlar el algoritmo para que omita la comprobación y active directamente una actualización completa cuando la cantidad de índices modificados supere el valor dado.

El valor por defecto es 200.

Esta propiedad se introdujo en Qt 6.9.

Funciones de acceso:

int updateThreshold() const
void setUpdateThreshold(int threshold)

Véase también dataChanged().

verticalScrollMode : ScrollMode

cómo la vista desplaza su contenido en dirección vertical

Esta propiedad controla cómo la vista desplaza su contenido verticalmente. El desplazamiento puede hacerse por píxel o por elemento. Su valor por defecto proviene del estilo a través de la sugerencia de estilo QStyle::SH_ItemView_ScrollMode.

Funciones de acceso:

QAbstractItemView::ScrollMode verticalScrollMode() const
void setVerticalScrollMode(QAbstractItemView::ScrollMode mode)
void resetVerticalScrollMode()

Documentación de funciones miembro

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

Construye una vista abstracta de artículo con la dirección parent.

[virtual noexcept] QAbstractItemView::~QAbstractItemView()

Destruye la vista.

[signal] void QAbstractItemView::activated(const QModelIndex &index)

Esta señal se emite cuando el elemento especificado por index es activado por el usuario. La forma de activar los elementos depende de la plataforma; por ejemplo, haciendo un solo clic o doble clic en el elemento, o pulsando la tecla Retorno o Intro cuando el elemento está activo.

Véase también clicked(), doubleClicked(), entered() y pressed().

[slot] void QAbstractItemView::clearSelection()

Deselecciona todos los elementos seleccionados. El índice actual no se modificará.

Véase también setSelection() y selectAll().

[signal] void QAbstractItemView::clicked(const QModelIndex &index)

Esta señal se emite cuando se pulsa el botón izquierdo del ratón. El elemento sobre el que se ha hecho clic se especifica en index. La señal sólo se emite cuando el índice es válido.

Véase también activated(), doubleClicked(), entered() y pressed().

[virtual protected slot] void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)

Cierra el editor dado y lo libera. hint se utiliza para especificar cómo debe responder la vista al final de la operación de edición. Por ejemplo, la sugerencia puede indicar que el siguiente elemento de la vista debe abrirse para su edición.

Véase también edit() y commitData().

void QAbstractItemView::closePersistentEditor(const QModelIndex &index)

Cierra el editor persistente del elemento en la dirección index.

Véase también openPersistentEditor() y isPersistentEditorOpen().

[virtual protected slot] void QAbstractItemView::commitData(QWidget *editor)

Consigna los datos de editor en el modelo.

Véase también closeEditor().

[virtual protected slot] void QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

Esta ranura se activa cuando un nuevo elemento se convierte en el elemento actual. El elemento actual anterior se especifica mediante el índice previous, y el nuevo elemento mediante el índice current.

Si desea conocer los cambios en los elementos, consulte la señal dataChanged().

QModelIndex QAbstractItemView::currentIndex() const

Devuelve el índice del modelo del elemento actual.

Véase también setCurrentIndex().

[virtual protected slot] void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())

Esta ranura se activa cuando se modifican en el modelo elementos con la dirección roles. Los elementos modificados son los comprendidos entre topLeft y bottomRight, ambos inclusive. Si sólo se modifica un elemento topLeft == bottomRight.

El roles que ha sido cambiado puede ser un contenedor vacío (lo que significa que todo ha cambiado), o un contenedor no vacío con el subconjunto de roles que han cambiado.

Nota : : Qt::ToolTipRole no es respetado por dataChanged() en las vistas proporcionadas por Qt.

[protected] QPoint QAbstractItemView::dirtyRegionOffset() const

Devuelve el desplazamiento de las regiones sucias en la vista.

Si usas scrollDirtyRegion() e implementas un paintEvent() en una subclase de QAbstractItemView, debes traducir el área dada por el evento paint con el offset devuelto por esta función.

Véase también scrollDirtyRegion() y setDirtyRegion().

[signal] void QAbstractItemView::doubleClicked(const QModelIndex &index)

Esta señal se emite cuando se hace doble clic sobre un botón del ratón. El elemento sobre el que se ha hecho doble clic se especifica en index. La señal sólo se emite cuando el índice es válido.

Véase también clicked() y activated().

[override virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)

Reimplementa: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).

Esta función es llamada con el event dado cuando una operación de arrastrar y soltar entra en el widget. Si el arrastre se realiza sobre un lugar de soltado válido (por ejemplo, sobre un elemento que acepta soltados), el evento es aceptado; en caso contrario es ignorado.

Véase también dropEvent() y startDrag().

[override virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)

Reimplementa: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).

Esta función es llamada cuando el elemento arrastrado abandona la vista. El event describe el estado de la operación de arrastrar y soltar.

[override virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)

Reimplementa: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).

Esta función es llamada continuamente con el event dado durante una operación de arrastrar y soltar sobre el widget. Puede hacer que la vista se desplace si, por ejemplo, el usuario arrastra una selección hasta el borde derecho o inferior de la vista. En este caso, el evento será aceptado; en caso contrario, será ignorado.

Véase también dropEvent() y startDrag().

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

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

Esta función es llamada con el event dado cuando ocurre un evento de caída sobre el widget. Si el modelo acepta la posición par el evento de caída es aceptado; en caso contrario es ignorado.

Ver también startDrag().

[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const

Devuelve la posición del indicador de caída en relación con el elemento más cercano.

[slot] void QAbstractItemView::edit(const QModelIndex &index)

Inicia la edición del elemento correspondiente a la dirección index si es editable.

Tenga en cuenta que esta función no cambia el índice actual. Dado que el índice actual define los elementos siguiente y anterior a editar, los usuarios pueden encontrar que la navegación por teclado no funciona como se esperaba. Para proporcionar un comportamiento de navegación consistente, llame a setCurrentIndex() antes de esta función con el mismo índice de modelo.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        abstractItemView, qOverload(&QAbstractItemView::edit));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        abstractItemView, [receiver = abstractItemView](const QModelIndex &index) { receiver->edit(index); });
Para ver más ejemplos y enfoques, consulte la conexión a ranuras sobrecargadas.

Véase también QModelIndex::flags().

[virtual protected] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)

Inicia la edición del elemento en index, creando un editor si es necesario, y devuelve true si el State de la vista es ahora EditingState; en caso contrario devuelve false.

La acción que provocó el proceso de edición se describe en trigger, y el evento asociado se especifica en event.

Se puede forzar la edición especificando que trigger sea QAbstractItemView::AllEditTriggers.

Véase también closeEditor().

[virtual protected slot] void QAbstractItemView::editorDestroyed(QObject *editor)

Esta función es llamada cuando el editor dado ha sido destruido.

Véase también closeEditor().

[signal] void QAbstractItemView::entered(const QModelIndex &index)

Esta señal se emite cuando el cursor del ratón entra en el elemento especificado por index. El seguimiento del ratón debe estar activado para que esta función funcione.

Véase también viewportEntered(), activated(), clicked(), doubleClicked(), y pressed().

[override virtual protected] bool QAbstractItemView::event(QEvent *event)

Reimplementa: QAbstractScrollArea::event(QEvent *event).

[override virtual protected] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)

Reimplementa: QObject::eventFilter(QObject *watched, QEvent *event).

[protected] void QAbstractItemView::executeDelayedItemsLayout()

Ejecuta los diseños programados sin esperar a que comience el procesamiento de eventos.

Véase también scheduleDelayedItemsLayout().

[override virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)

Reimplementa: QWidget::focusInEvent(QFocusEvent *event).

Esta función es llamada con el event dado cuando el widget obtiene el foco. Por defecto, el evento es ignorado.

Ver también setFocus() y focusOutEvent().

[override virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)

Reimplementa: QWidget::focusNextPrevChild(bool next).

[override virtual protected] void QAbstractItemView::focusOutEvent(QFocusEvent *event)

Reimplementa: QWidget::focusOutEvent(QFocusEvent *event).

Esta función es llamada con el event dado cuando el widget pierde el foco. Por defecto, el evento es ignorado.

Ver también clearFocus() y focusInEvent().

[pure virtual protected] int QAbstractItemView::horizontalOffset() const

Devuelve el desplazamiento horizontal de la vista.

En la clase base es una función virtual pura.

Véase también verticalOffset().

[pure virtual] QModelIndex QAbstractItemView::indexAt(const QPoint &point) const

Devuelve el índice del modelo del elemento en las coordenadas de la ventana gráfica point.

En la clase base se trata de una función virtual pura.

Véase también visualRect().

QWidget *QAbstractItemView::indexWidget(const QModelIndex &index) const

Devuelve el widget del elemento en la dirección index.

Véase también setIndexWidget().

[virtual protected, since 6.0] void QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const

Inicializa la estructura option con la paleta, fuente, estado, alineaciones, etc. de la vista.

Nota: Las implementaciones de este método deberían comprobar la version de la estructura recibida, rellenar todos los miembros con los que la implementación esté familiarizada, y establecer el miembro version al soportado por la implementación antes de devolver.

Esta función se introdujo en Qt 6.0.

[override virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)

Reimplementa: QWidget::inputMethodEvent(QInputMethodEvent *event).

[override virtual] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const

Reimplementa: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

[pure virtual protected] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const

Devuelve true si el elemento al que hace referencia index está oculto en la vista; en caso contrario, devuelve false.

La ocultación es una característica específica de la vista. Por ejemplo, en TableView se puede marcar una columna como oculta o una fila en TreeView.

En la clase base se trata de una función virtual pura.

bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const

Devuelve si hay un editor persistente abierto para el elemento en el índice index.

Véase también openPersistentEditor() y closePersistentEditor().

QAbstractItemDelegate *QAbstractItemView::itemDelegate() const

Devuelve el delegado de elemento utilizado por esta vista y modelo. Puede ser uno establecido con setItemDelegate(), o el predeterminado.

Véase también setItemDelegate().

QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const

Devuelve el delegado de elemento utilizado por esta vista y modelo para el column dado . Puedes llamar a itemDelegate() para obtener un puntero al delegado actual para un índice dado.

Véase también setItemDelegateForColumn(), itemDelegateForRow() y itemDelegate().

[virtual, since 6.0] QAbstractItemDelegate *QAbstractItemView::itemDelegateForIndex(const QModelIndex &index) const

Devuelve el delegado de elemento utilizado por esta vista y modelo para el index dado .

Esta función se introdujo en Qt 6.0.

Véase también setItemDelegate(), setItemDelegateForRow() y setItemDelegateForColumn().

QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const

Devuelve el delegado de elemento utilizado por esta vista y modelo para el row dado , o nullptr si no se ha asignado ningún delegado. Puede llamar a itemDelegate() para obtener un puntero al delegado actual para un índice dado.

Véase también setItemDelegateForRow(), itemDelegateForColumn() y setItemDelegate().

[override virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)

Reimplementa: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).

Esta función es llamada con el event dado cuando un evento de tecla es enviado al widget. La implementación por defecto maneja el movimiento básico del cursor, p.e. Arriba, Abajo, Izquierda, Derecha, Home, PageUp, y PageDown; la señal activated() se emite si el índice actual es válido y se pulsa la tecla de activación (p.e. Enter o Return, dependiendo de la plataforma). En esta función, la edición se inicia al pulsar una tecla, por ejemplo, si se pulsa F2.

Véase también edit(), moveCursor(), keyboardSearch(), y tabKeyNavigation.

[virtual] void QAbstractItemView::keyboardSearch(const QString &search)

Se desplaza y selecciona el elemento que mejor coincide con la cadena search. Si no se encuentra ningún elemento, no ocurre nada.

En la implementación por defecto, la búsqueda se reinicia si search está vacío, o el intervalo de tiempo desde la última búsqueda ha excedido QApplication::keyboardInputInterval().

QAbstractItemModel *QAbstractItemView::model() const

Devuelve el modelo que presenta esta vista.

Véase también setModel().

[override virtual protected] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)

Reimplementa: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).

Esta función es llamada con el event dado cuando un botón del ratón es pulsado dos veces dentro del widget. Si el doble click es sobre un item valido emite la señal doubleClicked() y llama a edit() sobre el item.

[override virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)

Reimplementa: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).

Esta función es llamada con el event dado cuando un evento de movimiento del ratón es enviado al widget. Si hay una selección en curso y se mueven nuevos elementos por encima, la selección se amplía; si hay un arrastre en curso, continúa.

[override virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)

Reimplementa: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).

Esta función es llamada con el event dado cuando se pulsa un botón del ratón mientras el cursor está dentro del widget. Si se pulsa sobre un elemento válido se convierte en el elemento actual. Esta función emite la señal pressed().

[override virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)

Reimplementa: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).

Esta función es llamada con el event dado cuando se suelta un botón del ratón, después de un evento de pulsación del ratón en el widget. Si un usuario presiona el ratón dentro de tu widget y luego arrastra el ratón a otro lugar antes de soltar el botón del ratón, tu widget recibe el evento de liberación. La función emitirá la señal clicked() si se estaba pulsando un elemento.

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

Devuelve un objeto QModelIndex que apunta al siguiente objeto de la vista, basándose en el cursorAction dado y los modificadores de teclado especificados por modifiers.

En la clase base se trata de una función virtual pura.

void QAbstractItemView::openPersistentEditor(const QModelIndex &index)

Abre un editor persistente en el elemento en la dirección index. Si no existe ningún editor, el delegado creará uno nuevo.

Véase también closePersistentEditor() y isPersistentEditorOpen().

[signal] void QAbstractItemView::pressed(const QModelIndex &index)

Esta señal se emite cuando se pulsa un botón del ratón. El elemento sobre el que se ha pulsado se especifica en index. La señal sólo se emite cuando el índice es válido.

Utilice la función QGuiApplication::mouseButtons() para obtener el estado de los botones del ratón.

Véase también activated(), clicked(), doubleClicked() y entered().

[virtual slot] void QAbstractItemView::reset()

Restablece el estado interno de la vista.

Advertencia: Esta función restablecerá los editores abiertos, las posiciones de la barra de desplazamiento, las selecciones, etc. Los cambios existentes no se guardarán. Si desea guardar los cambios al restablecer la vista, puede reimplementar esta función, confirmar los cambios y, a continuación, llamar a la implementación de la superclase.

[override virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)

Reimplementa: QAbstractScrollArea::resizeEvent(QResizeEvent *event).

Esta función es llamada con el event dado cuando un evento de redimensionamiento es enviado al widget.

Ver también QWidget::resizeEvent().

QModelIndex QAbstractItemView::rootIndex() const

Devuelve el índice del elemento raíz del modelo. El elemento raíz es el elemento padre de los elementos de nivel superior de la vista. La raíz puede ser inválida.

Véase también setRootIndex().

[virtual protected slot] void QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)

Esta ranura se llama cuando se van a eliminar filas. Las filas eliminadas son las que están bajo el parent dado desde start hasta end inclusive.

Véase también rowsInserted().

[virtual protected slot] void QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end)

Se llama a esta ranura cuando se insertan filas. Las nuevas filas son las que están bajo el parent dado desde start hasta end inclusive. La implementación de la clase base llama a fetchMore() en el modelo para comprobar si hay más datos.

Véase también rowsAboutToBeRemoved().

[protected] void QAbstractItemView::scheduleDelayedItemsLayout()

Programa una disposición de los elementos de la vista para que se ejecute cuando comience el procesamiento de eventos.

Incluso si scheduleDelayedItemsLayout() se llama varias veces antes de que se procesen los eventos, la vista sólo realizará la disposición una vez.

Véase también executeDelayedItemsLayout().

[protected] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)

Prepara la vista para desplazarse (dx,dy) píxeles moviendo las regiones sucias en la dirección opuesta. Sólo necesita llamar a esta función si está implementando una ventana gráfica de desplazamiento en su subclase de vista.

Si implementa scrollContentsBy() en una subclase de QAbstractItemView, llame a esta función antes de llamar a QWidget::scroll() en la ventana gráfica. Como alternativa, basta con llamar a update().

Véase también scrollContentsBy(), dirtyRegionOffset(), y setDirtyRegion().

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

Desplaza la vista si es necesario para asegurarse de que el elemento en index es visible. La vista intentará posicionar el elemento de acuerdo con la dirección hint.

En la clase base esta es una función virtual pura.

[slot] void QAbstractItemView::scrollToBottom()

Desplaza la vista hacia abajo.

Véase también scrollTo() y scrollToTop().

[slot] void QAbstractItemView::scrollToTop()

Desplaza la vista a la parte superior.

Véase también scrollTo() y scrollToBottom().

[virtual slot] void QAbstractItemView::selectAll()

Selecciona todos los elementos de la vista. Esta función utilizará el comportamiento de selección establecido en la vista al seleccionar.

Véase también setSelection(), selectedIndexes(), y clearSelection().

[virtual protected] QModelIndexList QAbstractItemView::selectedIndexes() const

Esta función devuelve una lista de todos los índices de elementos seleccionados y no ocultos de la vista. La lista no contiene duplicados y no está ordenada.

Véase también QItemSelectionModel::selectedIndexes().

[virtual protected slot] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

Esta ranura se llama cuando se cambia la selección. La selección anterior (que puede estar vacía), se especifica mediante deselected, y la nueva selección mediante selected.

Véase también setSelection().

[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const

Devuelve las SelectionFlags que se utilizarán al actualizar un modelo de selección para el index especificado. El resultado depende de la selectionMode() actual, y del evento de entrada del usuario event, que puede ser nullptr.

Reimplemente esta función para definir su propio comportamiento de selección.

Véase también setSelection().

QItemSelectionModel *QAbstractItemView::selectionModel() const

Devuelve el modelo de selección actual.

Véase también setSelectionModel() y selectedIndexes().

[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)

Establece el elemento actual en index.

A menos que el modo de selección actual sea NoSelection, el elemento también se selecciona. Tenga en cuenta que esta función también actualiza la posición inicial para cualquier nueva selección que realice el usuario.

Para establecer un elemento como el elemento actual sin seleccionarlo, llame a

selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);

Véase también currentIndex(), currentChanged(), y selectionMode.

[protected] void QAbstractItemView::setDirtyRegion(const QRegion &region)

Marca el region dado como sucio y programa su actualización. Sólo necesitas llamar a esta función si estás implementando tu propia subclase de vista.

Véase también scrollDirtyRegion() y dirtyRegionOffset().

void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)

Establece el widget dado en el elemento en el index dado , pasando la propiedad del widget a la ventana gráfica.

Si index no es válido (por ejemplo, si se pasa el índice raíz), esta función no hará nada.

La propiedad autoFillBackground de widget debe ser verdadera, de lo contrario el fondo del widget será transparente, mostrando tanto los datos del modelo como el elemento en index.

Nota: La vista toma posesión del widget. Esto significa que si el widget de índice A es reemplazado por el widget de índice B, el widget de índice A será eliminado. Por ejemplo, en el fragmento de código siguiente, se eliminará el objeto QLineEdit.

setIndexWidget(index, new QLineEdit);
...
setIndexWidget(index, new QTextEdit);

Esta función sólo debe utilizarse para mostrar contenido estático dentro del área visible correspondiente a un elemento de datos. Si desea mostrar contenido dinámico personalizado o implementar un widget de editor personalizado, subclase QStyledItemDelegate en su lugar.

Véase también indexWidget() y Clases delegadas.

void QAbstractItemView::setItemDelegate(QAbstractItemDelegate *delegate)

Establece el delegado de elementos para esta vista y su modelo en delegate. Esto es útil si desea un control completo sobre la edición y visualización de elementos.

Cualquier delegado existente será eliminado, pero no borrado. QAbstractItemView no se apropia de delegate.

Advertencia: No debe compartir la misma instancia de un delegado entre vistas. Hacerlo puede causar un comportamiento de edición incorrecto o poco intuitivo, ya que cada vista conectada a un delegado dado puede recibir la señal closeEditor(), e intentar acceder, modificar o cerrar un editor que ya ha sido cerrado.

Véase también itemDelegate().

void QAbstractItemView::setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)

Establece el elemento dado delegate utilizado por esta vista y modelo para el column dado. Todos los elementos en column serán dibujados y gestionados por delegate en lugar de utilizar el delegado por defecto (es decir, itemDelegate()).

Cualquier delegado de columna existente para column será eliminado, pero no borrado. QAbstractItemView no se apropia de delegate.

Nota: Si se ha asignado un delegado tanto a una fila como a una columna, el delegado de la fila tendrá prioridad y gestionará el índice de la celda de intersección.

Advertencia: No debe compartir la misma instancia de un delegado entre vistas. Hacerlo puede provocar un comportamiento de edición incorrecto o poco intuitivo, ya que cada vista conectada a un delegado determinado puede recibir la señal closeEditor(), e intentar acceder, modificar o cerrar un editor que ya ha sido cerrado.

Véase también itemDelegateForColumn(), setItemDelegateForRow(), y itemDelegate().

void QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)

Establece el elemento dado delegate utilizado por esta vista y modelo para el row dado. Todos los elementos en row serán dibujados y gestionados por delegate en lugar de utilizar el delegado por defecto (es decir, itemDelegate()).

Cualquier delegado de fila existente para row será eliminado, pero no borrado. QAbstractItemView no toma la propiedad de delegate.

Nota: Si se ha asignado un delegado tanto a una fila como a una columna, el delegado de la fila (es decir, este delegado) tendrá prioridad y gestionará el índice de la celda de intersección.

Advertencia: No debes compartir la misma instancia de un delegado entre vistas. Hacerlo puede provocar un comportamiento de edición incorrecto o poco intuitivo, ya que cada vista conectada a un delegado determinado puede recibir la señal closeEditor() e intentar acceder, modificar o cerrar un editor que ya ha sido cerrado.

Véase también itemDelegateForRow(), setItemDelegateForColumn(), y itemDelegate().

[virtual] void QAbstractItemView::setModel(QAbstractItemModel *model)

Establece el model para la vista a presentar.

Esta función creará y establecerá un nuevo modelo de selección, reemplazando cualquier modelo que haya sido establecido previamente con setSelectionModel(). Sin embargo, el modelo de selección antiguo no se borrará, ya que puede estar compartido entre varias vistas. Le recomendamos que elimine el modelo de selección antiguo si ya no es necesario. Esto se hace con el siguiente código:

QItemSelectionModel *m = view->selectionModel();
view->setModel(new model);
delete m;

Si tanto el modelo antiguo como el modelo de selección antiguo no tienen padres, o si sus padres son objetos de larga vida, puede ser preferible llamar a sus funciones deleteLater() para borrarlos explícitamente.

La vista no toma posesión del modelo a menos que sea el objeto padre del modelo, ya que el modelo puede ser compartido entre muchas vistas diferentes.

Véase también model(), selectionModel() y setSelectionModel().

[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)

Establece el elemento raíz en el elemento indicado en index.

Véase también rootIndex().

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

Aplica la selección flags a los ítems dentro o tocados por el rectángulo, rect.

Cuando implemente su propio itemview setSelection debería llamar a selectionModel()->select(selection, flags) donde selection es un QModelIndex vacío o un QItemSelection que contiene todos los elementos que están contenidos en rect.

Véase también selectionCommand() y selectedIndexes().

[virtual] void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)

Establece el modelo de selección actual en selectionModel.

Tenga en cuenta que, si llama a setModel() después de esta función, el selectionModel dado será reemplazado por uno creado por la vista.

Nota: Es responsabilidad de la aplicación eliminar el modelo de selección antiguo si ya no es necesario; es decir, si no está siendo utilizado por otras vistas. Esto ocurrirá automáticamente cuando se elimine su objeto padre. Sin embargo, si no tiene padre, o si el padre es un objeto de larga vida, puede ser preferible llamar a su función deleteLater() para borrarlo explícitamente.

Véase también selectionModel(), setModel() y clearSelection().

[protected] void QAbstractItemView::setState(QAbstractItemView::State state)

Establece el estado de la vista del elemento en la dirección state.

Véase también state().

[virtual] int QAbstractItemView::sizeHintForColumn(int column) const

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

Esta función se utiliza en vistas con una cabecera horizontal para encontrar la sugerencia de tamaño para una sección de cabecera basada en el contenido del column dado.

Véase también sizeHintForRow().

QSize QAbstractItemView::sizeHintForIndex(const QModelIndex &index) const

Devuelve la sugerencia de tamaño para el elemento con el index especificado o un tamaño no válido para índices no válidos.

Véase también sizeHintForRow() y sizeHintForColumn().

[virtual] int QAbstractItemView::sizeHintForRow(int row) const

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

La altura devuelta se calcula utilizando las sugerencias de tamaño de los elementos de row, es decir, el valor devuelto es la altura máxima entre los elementos. Tenga en cuenta que para controlar la altura de una fila, debe reimplementar la función QAbstractItemDelegate::sizeHint().

Esta función se utiliza en vistas con una cabecera vertical para encontrar la sugerencia de tamaño para una sección de cabecera basada en el contenido del row dado.

Véase también sizeHintForColumn().

[virtual protected] void QAbstractItemView::startDrag(Qt::DropActions supportedActions)

Inicia un arrastre llamando a drag->exec() utilizando la dirección supportedActions.

[protected] QAbstractItemView::State QAbstractItemView::state() const

Devuelve el estado de la vista del artículo.

Véase también setState().

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

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

Esta función es llamada con el event dado cuando un evento de temporizador es enviado al widget.

Ver también QObject::timerEvent().

[slot] void QAbstractItemView::update(const QModelIndex &index)

Actualiza el área ocupada por la dirección index.

[virtual protected slot] void QAbstractItemView::updateGeometries()

Actualiza la geometría de los widgets hijos de la vista.

[pure virtual protected] int QAbstractItemView::verticalOffset() const

Devuelve el desplazamiento vertical de la vista.

En la clase base se trata de una función virtual pura.

Véase también horizontalOffset().

[signal] void QAbstractItemView::viewportEntered()

Esta señal se emite cuando el cursor del ratón entra en la ventana gráfica. El seguimiento del ratón debe estar activado para que esta función funcione.

Véase también entered().

[override virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)

Reimplementa: QAbstractScrollArea::viewportEvent(QEvent *event).

Esta función se utiliza para manejar consejos de herramientas, y el modo ¿Qué es esto?, si el event dado es un QEvent::ToolTip,o un QEvent::WhatsThis. Pasa todos los demás eventos a su clase base viewportEvent() handler.

Devuelve true si event ha sido reconocido y procesado; en caso contrario, devuelve false.

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

Reimplementa: QAbstractScrollArea::viewportSizeHint() const.

[pure virtual] QRect QAbstractItemView::visualRect(const QModelIndex &index) const

Devuelve el rectángulo en la ventana gráfica ocupado por el elemento en index.

Si tu ítem se muestra en varias áreas entonces visualRect debería devolver el área primaria que contiene a index y no el área completa que index podría abarcar, tocar o provocar el dibujo.

En la clase base esta es una función virtual pura.

Véase también indexAt() y visualRegionForSelection().

[pure virtual protected] QRegion QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const

Devuelve la región de la ventana gráfica de los elementos en la dirección selection.

En la clase base se trata de una función virtual pura.

Véase también visualRect() y selectedIndexes().

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