Auf dieser Seite

QAbstractItemView Class

Die Klasse „QAbstractItemView“ stellt die grundlegenden Funktionen für Item-View-Klassen bereit. Mehr...

Header: #include <QAbstractItemView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: QAbstractScrollArea
Vererbt an:

QColumnView, QHeaderView, QListView, QTableView sowie QTreeView

Öffentliche Typen

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 }

Eigenschaften

Öffentliche Funktionen

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

Neu implementierte öffentliche Funktionen

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

Öffentliche Slots

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)

Signale

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()

Geschützte Typen

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

Geschützte Funktionen

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

Neu implementierte geschützte Funktionen

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

Geschützte Slots

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

Ausführliche Beschreibung

Die Klasse `QAbstractItemView` ist die Basisklasse für jede Standardansicht, die eine ` QAbstractItemModel` verwendet. `QAbstractItemView` ist eine abstrakte Klasse und kann selbst nicht instanziiert werden. Sie bietet eine Standardschnittstelle für die Interaktion mit Modellen über den Signal- und Slot-Mechanismus, wodurch Unterklassen bei Änderungen an ihren Modellen stets auf dem neuesten Stand gehalten werden können. Diese Klasse bietet Standardunterstützung für die Navigation per Tastatur und Maus, das Scrollen im Ansichtsfenster, die Bearbeitung von Elementen und die Auswahl. Die Tastaturnavigation implementiert folgende Funktionen:

TastenFunktionalität
PfeiltastenWechselt zum aktuellen Element und wählt es aus.
Strg+PfeiltastenWechselt zum nächsten Element, wählt es jedoch nicht aus.
Umschalt+PfeiltastenWechselt zum aktuellen Element und wählt es aus. Die zuvor ausgewählten Elemente bleiben ausgewählt.
Strg+LeertasteSchaltet die Auswahl des aktuellen Elements um.
Tab/BacktabWechselt vom aktuellen Element zum nächsten bzw. vorherigen Element.
Pos1/EndeWählt das erste bzw. letzte Element im Modell aus.
Bild auf/Bild abBlättert die angezeigten Zeilen um die Anzahl der in der Ansicht sichtbaren Zeilen nach oben bzw. unten.
Strg+AWählt alle Elemente im Modell aus.

Beachten Sie, dass die obige Tabelle davon ausgeht, dass die Klasse „ selection mode “ die entsprechenden Operationen zulässt. So können Sie beispielsweise keine Elemente auswählen, wenn der Auswahlmodus auf „ QAbstractItemView::NoSelection “ gesetzt ist.

Die Klasse `QAbstractItemView` gehört zu den Modell-/Ansichtsklassen und ist Teil des Modell-/Ansichts-Frameworks von Qt.

Die Ansichtsklassen, die von `QAbstractItemView` erben, müssen lediglich ihre eigenen ansichtsspezifischen Funktionen implementieren, wie z. B. das Zeichnen von Elementen, das Zurückgeben der Geometrie von Elementen, das Suchen von Elementen usw.

QAbstractItemView stellt allgemeine Slots wie „ edit()“ und „ setCurrentIndex()“ bereit. Zudem werden zahlreiche geschützte Slots bereitgestellt, darunter „ dataChanged()“, „ rowsInserted()“, „ rowsAboutToBeRemoved()“, „ selectionChanged()“ und „ currentChanged()“.

Das Stammelement wird von ` rootIndex()` zurückgegeben, das aktuelle Element von ` currentIndex()`. Um sicherzustellen, dass ein Element sichtbar ist, verwenden Sie ` scrollTo()`.

Einige Funktionen von `QAbstractItemView` beziehen sich auf das Scrollen, zum Beispiel ` setHorizontalScrollMode()` und ` setVerticalScrollMode()`. Um den Bereich der Bildlaufleisten festzulegen, können Sie beispielsweise die Funktion ` resizeEvent()` der Ansicht neu implementieren:

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

Beachten Sie, dass der Bereich erst aktualisiert wird, wenn das Widget angezeigt wird.

Mehrere weitere Funktionen befassen sich mit der Auswahlsteuerung, zum Beispiel ` setSelectionMode()` und ` setSelectionBehavior()`. Diese Klasse stellt ein Standardauswahlmodell zur Verfügung (`selectionModel()`), das jedoch durch die Verwendung von ` setSelectionModel()` mit einer Instanz von ` QItemSelectionModel` ersetzt werden kann.

Für die vollständige Kontrolle über die Anzeige und Bearbeitung von Elementen können Sie mit ` setItemDelegate()` einen Delegaten angeben.

QAbstractItemView stellt zahlreiche geschützte Funktionen zur Verfügung. Einige beziehen sich auf die Bearbeitung, zum Beispiel edit() und commitData(), während andere als Ereignisbehandler für Tastatur- und Mausereignisse dienen.

Hinweis: Wenn Sie von QAbstractItemView erben und den Inhalt des Viewports aktualisieren möchten, sollten Sie viewport->update() anstelle von update() verwenden, da alle Zeichenoperationen im Viewport stattfinden.

Siehe auch Ansichtsklassen, Modell-Ansicht-Programmierung und ` QAbstractItemModel`.

Dokumentation zu Mitgliedstypen

enum QAbstractItemView::CursorAction

Diese Aufzählung beschreibt die verschiedenen Möglichkeiten, zwischen Elementen zu navigieren,

KonstanteWertBeschreibung
QAbstractItemView::MoveUp0Zum Element oberhalb des aktuellen Elements wechseln.
QAbstractItemView::MoveDown1Zum Element unterhalb des aktuellen Elements wechseln.
QAbstractItemView::MoveLeft2Wechseln Sie zum Element links vom aktuellen Element.
QAbstractItemView::MoveRight3Wechseln Sie zum Element rechts vom aktuellen Element.
QAbstractItemView::MoveHome4Wechsle zum Element in der oberen linken Ecke.
QAbstractItemView::MoveEnd5Wechseln Sie zum Element in der rechten unteren Ecke.
QAbstractItemView::MovePageUp6Eine Seite nach oben über das aktuelle Element springen.
QAbstractItemView::MovePageDown7Gehe eine Seite unter den aktuellen Eintrag.
QAbstractItemView::MoveNext8Zum Element nach dem aktuellen Element springen.
QAbstractItemView::MovePrevious9Wechseln Sie zum Element vor dem aktuellen Element.

Siehe auch „ moveCursor“ ().

enum QAbstractItemView::DragDropMode

Beschreibt die verschiedenen Drag-and-Drop-Ereignisse, auf die die Ansicht reagieren kann. Standardmäßig unterstützt die Ansicht weder das Ziehen noch das Ablegen (NoDragDrop).

KonstanteWertBeschreibung
QAbstractItemView::NoDragDrop0Unterstützt kein Ziehen und Ablegen.
QAbstractItemView::DragOnly1Die Ansicht unterstützt das Ziehen ihrer eigenen Elemente
QAbstractItemView::DropOnly2Die Ansicht akzeptiert das Ablegen
QAbstractItemView::DragDrop3Die Ansicht unterstützt sowohl das Ziehen als auch das Ablegen
QAbstractItemView::InternalMove4Die Ansicht akzeptiert Verschieben-Operationen (keine Kopiervorgänge) nur von sich selbst.

Beachten Sie, dass das verwendete Modell Unterstützung für Drag-and-Drop-Operationen bieten muss.

Siehe auch „ setDragDropMode()“ und „Drag-and-Drop mit Elementansichten verwenden“.

enum QAbstractItemView::DropIndicatorPosition

Diese Enumeration gibt die Position des Drop-Indikators relativ zum Index an der aktuellen Mausposition an:

KonstanteWertBeschreibung
QAbstractItemView::OnItem0Das Element wird auf dem Index abgelegt.
QAbstractItemView::AboveItem1Das Element wird oberhalb des Index abgelegt.
QAbstractItemView::BelowItem2Das Element wird unterhalb des Index abgelegt.
QAbstractItemView::OnViewport3Das Element wird in einen Bereich des Ansichtsfensters abgelegt, in dem sich keine Elemente befinden. Wie die jeweilige Ansicht mit Elementen umgeht, die in das Ansichtsfenster abgelegt werden, hängt vom Verhalten des zugrunde liegenden Modells ab.

enum QAbstractItemView::EditTrigger
flags QAbstractItemView::EditTriggers

Diese Enumeration beschreibt Aktionen, die die Bearbeitung eines Elements auslösen.

KonstanteWertBeschreibung
QAbstractItemView::NoEditTriggers0Keine Bearbeitung möglich.
QAbstractItemView::CurrentChanged1Die Bearbeitung beginnt, sobald sich das aktuelle Element ändert.
QAbstractItemView::DoubleClicked2Die Bearbeitung beginnt, wenn auf ein Element doppelgeklickt wird.
QAbstractItemView::SelectedClicked4Die Bearbeitung beginnt, wenn auf ein bereits ausgewähltes Element geklickt wird.
QAbstractItemView::EditKeyPressed8Die Bearbeitung beginnt, wenn die Bearbeitungs-Taste der Plattform über einem Element gedrückt wird.
QAbstractItemView::AnyKeyPressed16Die Bearbeitung beginnt, wenn über einem Element eine beliebige Taste gedrückt wird.
QAbstractItemView::AllEditTriggers31Die Bearbeitung beginnt bei allen oben genannten Aktionen.

Der Typ „EditTriggers“ ist ein „typedef“ für „QFlags<EditTrigger>“. Er speichert eine ODER-Kombination von „EditTrigger“-Werten.

enum QAbstractItemView::ScrollHint

KonstanteWertBeschreibung
QAbstractItemView::EnsureVisible0Scrollen, um sicherzustellen, dass das Element sichtbar ist.
QAbstractItemView::PositionAtTop1Scrollen Sie, um das Element am oberen Rand des Ansichtsbereichs zu positionieren.
QAbstractItemView::PositionAtBottom2Scrollen Sie, um das Element am unteren Rand des Ansichtsbereichs zu positionieren.
QAbstractItemView::PositionAtCenter3Scrollen Sie, um das Element in der Mitte des Ansichtsbereichs zu positionieren.

enum QAbstractItemView::ScrollMode

Beschreibt, wie sich die Bildlaufleiste verhalten soll. Wenn der Bildlaufmodus auf „ScrollPerPixel“ gesetzt wird, passt sich die Schrittweite automatisch an, sofern sie nicht explizit mit der Funktion „ setSingleStep()“ festgelegt wurde. Die automatische Anpassung kann wiederhergestellt werden, indem die Schrittweite auf -1 gesetzt wird.

KonstanteWertBeschreibung
QAbstractItemView::ScrollPerItem0Die Ansicht scrollt den Inhalt elementweise.
QAbstractItemView::ScrollPerPixel1Die Ansicht scrollt den Inhalt pixelweise.

enum QAbstractItemView::SelectionBehavior

KonstanteWertBeschreibung
QAbstractItemView::SelectItems0Auswahl einzelner Elemente.
QAbstractItemView::SelectRows1Nur Zeilen auswählen.
QAbstractItemView::SelectColumns2Nur Spalten auswählen.

enum QAbstractItemView::SelectionMode

Diese Enumeration gibt an, wie die Ansicht auf Benutzerauswahlen reagiert:

KonstanteWertBeschreibung
QAbstractItemView::SingleSelection1Wenn der Benutzer ein Element auswählt, wird jedes bereits ausgewählte Element abgewählt. Der Benutzer kann die Auswahl des ausgewählten Elements aufheben, indem er beim Klicken auf das ausgewählte Element die Strg-Taste drückt.
QAbstractItemView::ContiguousSelection4Wenn der Benutzer ein Element auf die übliche Weise auswählt, wird die Auswahl aufgehoben und das neue Element ausgewählt. Drückt der Benutzer jedoch die Umschalttaste, während er auf ein Element klickt, werden alle Elemente zwischen dem aktuellen Element und dem angeklickten Element je nach Status des angeklickten Elements ausgewählt oder abgewählt.
QAbstractItemView::ExtendedSelection3Wenn der Benutzer ein Element auf die übliche Weise auswählt, wird die Auswahl aufgehoben und das neue Element ausgewählt. Drückt der Benutzer jedoch beim Klicken auf ein Element die Strg-Taste, wird der Status des angeklickten Elements umgeschaltet, während alle anderen Elemente unverändert bleiben. Drückt der Benutzer beim Klicken auf ein Element die Umschalttaste, werden alle Elemente zwischen dem aktuellen Element und dem angeklickten Element je nach Status des angeklickten Elements ausgewählt oder die Auswahl aufgehoben. Mehrere Elemente können durch Ziehen der Maus über sie ausgewählt werden.
QAbstractItemView::MultiSelection2Wenn der Benutzer ein Element auf die übliche Weise auswählt, wird der Auswahlstatus dieses Elements umgeschaltet, während die anderen Elemente unverändert bleiben. Mehrere Elemente können durch Ziehen der Maus über sie umgeschaltet werden.
QAbstractItemView::NoSelection0Elemente können nicht ausgewählt werden.

Die am häufigsten verwendeten Modi sind „SingleSelection“ und „ExtendedSelection“.

enum QAbstractItemView::State

Beschreibt die verschiedenen Zustände, in denen sich die Ansicht befinden kann. Dies ist in der Regel nur dann von Interesse, wenn Sie Ihre eigene Ansicht neu implementieren.

KonstanteWertBeschreibung
QAbstractItemView::NoState0Dies ist der Standardzustand.
QAbstractItemView::DraggingState1Der Benutzer zieht Elemente.
QAbstractItemView::DragSelectingState2Der Benutzer wählt Elemente aus.
QAbstractItemView::EditingState3Der Benutzer bearbeitet ein Element in einem Widget-Editor.
QAbstractItemView::ExpandingState4Der Benutzer öffnet einen Zweig von Elementen.
QAbstractItemView::CollapsingState5Der Benutzer schließt einen Zweig von Elementen.
QAbstractItemView::AnimatingState6Die Elementansicht führt eine Animation aus.

Dokumentation zu den Eigenschaften

alternatingRowColors : bool

Diese Eigenschaft legt fest, ob der Hintergrund mit wechselnden Farben gezeichnet werden soll

Ist diese Eigenschaft auf „ true “ gesetzt, wird der Hintergrund des Elements mit den Farben „ QPalette::Base “ und „ QPalette::AlternateBase “ gezeichnet; andernfalls wird der Hintergrund mit der Farbe „ QPalette::Base “ gezeichnet.

Standardmäßig ist diese Eigenschaft auf „ false “ gesetzt.

Zugriffsfunktionen:

bool alternatingRowColors() const
void setAlternatingRowColors(bool enable)

autoScroll : bool

Diese Eigenschaft gibt an, ob das automatische Scrollen bei Drag-Move-Ereignissen aktiviert ist

Wenn diese Eigenschaft auf „true“ gesetzt ist (Standardeinstellung), scrollt der „ QAbstractItemView “ automatisch den Inhalt der Ansicht, wenn der Benutzer innerhalb von 16 Pixeln vom Rand des Viewports zieht. Ändert sich das aktuelle Element, scrollt die Ansicht automatisch, um sicherzustellen, dass das aktuelle Element vollständig sichtbar ist.

Diese Eigenschaft funktioniert nur, wenn der Viewport das Ablegen von Elementen zulässt. Das automatische Scrollen wird deaktiviert, indem diese Eigenschaft auf „false“ gesetzt wird.

Zugriffsfunktionen:

bool hasAutoScroll() const
void setAutoScroll(bool enable)

autoScrollMargin : int

Diese Eigenschaft gibt die Größe des Bereichs an, bei der das automatische Scrollen ausgelöst wird

Diese Eigenschaft steuert die Größe des Bereichs am Rand des Ansichtsfensters, der das automatische Scrollen auslöst. Der Standardwert beträgt 16 Pixel.

Zugriffsfunktionen:

int autoScrollMargin() const
void setAutoScrollMargin(int margin)

defaultDropAction : Qt::DropAction

Diese Eigenschaft enthält die Drop-Aktion, die standardmäßig in QAbstractItemView::drag() verwendet wird.

Ist die Eigenschaft nicht festgelegt, lautet die Ablageaktion „CopyAction“, sofern die unterstützten Aktionen „CopyAction“ unterstützen.

Zugriffsfunktionen:

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

Siehe auch „ showDropIndicator “ und „ dragDropOverwriteMode “.

dragDropMode : DragDropMode

Diese Eigenschaft enthält das Drag-and-Drop-Ereignis, auf das die Ansicht reagiert

Zugriffsfunktionen:

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

Siehe auch showDropIndicator und dragDropOverwriteMode.

dragDropOverwriteMode : bool

Diese Eigenschaft legt das Drag-and-Drop-Verhalten der Ansicht fest

Wenn der Wert „ true “ lautet, überschreiben die ausgewählten Daten beim Ablegen die vorhandenen Elementdaten, während das Verschieben der Daten das Element löscht. Wenn der Wert „ false “ lautet, werden die ausgewählten Daten beim Ablegen als neues Element eingefügt. Beim Verschieben der Daten wird das Element ebenfalls entfernt.

Der Standardwert ist „ false “, wie in den Unterklassen „ QListView “ und „ QTreeView “. In der Unterklasse „ QTableView “ hingegen wurde die Eigenschaft auf „ true “ gesetzt.

Hinweis: Dies soll nicht verhindern, dass Elemente überschrieben werden. Die Implementierung von flags() im Modell sollte dies gewährleisten, indem sie nicht „ Qt::ItemIsDropEnabled “ zurückgibt.

Zugriffsfunktionen:

bool dragDropOverwriteMode() const
void setDragDropOverwriteMode(bool overwrite)

Siehe auch „ dragDropMode “.

dragEnabled : bool

Diese Eigenschaft gibt an, ob die Ansicht das Ziehen ihrer eigenen Elemente unterstützt

Zugriffsfunktionen:

bool dragEnabled() const
void setDragEnabled(bool enable)

Siehe auch showDropIndicator, DragDropMode, dragDropOverwriteMode und acceptDrops.

editTriggers : EditTriggers

Diese Eigenschaft legt fest, welche Aktionen die Bearbeitung eines Elements auslösen

Diese Eigenschaft ist eine Auswahl von Flags, die unter EditTrigger definiert sind und mit dem Operator „ODER“ kombiniert werden. Die Ansicht löst die Bearbeitung eines Elements nur dann aus, wenn die ausgeführte Aktion in dieser Eigenschaft festgelegt ist.

Der Standardwert lautet:

Zugriffsfunktionen:

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

horizontalScrollMode : ScrollMode

Wie die Ansicht ihren Inhalt in horizontaler Richtung scrollt

Diese Eigenschaft steuert, wie die Ansicht ihren Inhalt horizontal scrollt. Das Scrollen kann entweder pixelweise oder elementweise erfolgen. Der Standardwert wird über den Stilhinweis „ QStyle::SH_ItemView_ScrollMode “ aus dem Stil übernommen.

Zugriffsfunktionen:

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

iconSize : QSize

Diese Eigenschaft gibt die Größe der Symbole der Elemente an

Wird diese Eigenschaft gesetzt, während die Ansicht sichtbar ist, werden die Elemente neu angeordnet.

Zugriffsfunktionen:

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

Notifier-Signal:

void iconSizeChanged(const QSize &size)

[since 6.11] keyboardSearchFlags : Qt::MatchFlags

Diese Eigenschaft legt fest, wie die Standardimplementierung von ` keyboardSearch()` die angegebene Zeichenfolge mit den Daten des Modells abgleicht.

Der Standardwert ist ` Qt::MatchStartsWith|Qt::MatchWrap`.

Diese Aufzählung wurde in Qt 6.11 eingeführt.

Zugriffsfunktionen:

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

Siehe auch ` keyboardSearch()` und ` QAbstractItemModel::match()`.

selectionBehavior : SelectionBehavior

Diese Eigenschaft legt fest, welches Auswahlverhalten die Ansicht verwendet

Diese Eigenschaft gibt an, ob die Auswahl auf der Ebene einzelner Elemente, Zeilen oder Spalten erfolgt.

Zugriffsfunktionen:

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

Siehe auch SelectionMode und SelectionBehavior.

selectionMode : SelectionMode

Diese Eigenschaft legt fest, in welchem Auswahlmodus die Ansicht arbeitet

Diese Eigenschaft steuert, ob der Benutzer ein oder mehrere Elemente auswählen kann und, bei der Auswahl mehrerer Elemente, ob die Auswahl einen zusammenhängenden Bereich von Elementen umfassen muss.

Zugriffsfunktionen:

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

Siehe auch SelectionMode und SelectionBehavior.

showDropIndicator : bool

Diese Eigenschaft legt fest, ob beim Ziehen und Ablegen von Elementen der Ablege-Indikator angezeigt wird.

Zugriffsfunktionen:

bool showDropIndicator() const
void setDropIndicatorShown(bool enable)

Siehe auch dragEnabled, DragDropMode, dragDropOverwriteMode und acceptDrops.

tabKeyNavigation : bool

Diese Eigenschaft gibt an, ob die Elementnavigation mit der Tabulatortaste und der Rücktaste aktiviert ist.

Zugriffsfunktionen:

bool tabKeyNavigation() const
void setTabKeyNavigation(bool enable)

textElideMode : Qt::TextElideMode

Diese Eigenschaft gibt die Position des „...“ in gekürztem Text an.

Der Standardwert für alle Elementansichten lautet „ Qt::ElideRight “.

Zugriffsfunktionen:

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

[since 6.9] updateThreshold : int

Diese Eigenschaft enthält die Anzahl der geänderten Indizes, um direkt eine vollständige Aktualisierung der Ansicht innerhalb von ` dataChanged()` auszulösen.

Der Algorithmus in ` dataChanged()` versucht, eine vollständige Aktualisierung der Ansicht zu minimieren, indem er berechnet, ob die geänderten Indizes sichtbar sind oder nicht. Bei sehr großen Modellen mit vielen umfangreichen Änderungen kann dies länger dauern als die eigentliche Aktualisierung selbst, was kontraproduktiv ist. Mit dieser Eigenschaft lässt sich der Algorithmus so steuern, dass die Überprüfung übersprungen und direkt eine vollständige Aktualisierung ausgelöst wird, sobald die Anzahl der geänderten Indizes den angegebenen Wert überschreitet.

Der Standardwert beträgt 200.

Diese Aufzählung wurde in Qt 6.9 eingeführt.

Zugriffsfunktionen:

int updateThreshold() const
void setUpdateThreshold(int threshold)

Siehe auch ` dataChanged()`.

verticalScrollMode : ScrollMode

Wie die Ansicht ihren Inhalt in vertikaler Richtung scrollt

Diese Eigenschaft steuert, wie die Ansicht ihren Inhalt vertikal scrollt. Das Scrollen kann entweder pixelweise oder elementweise erfolgen. Der Standardwert wird über den Stilhinweis „ QStyle::SH_ItemView_ScrollMode “ aus dem Stil übernommen.

Zugriffsfunktionen:

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

Dokumentation zu den Member-Funktionen

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

Erstellt eine abstrakte Elementansicht mit dem angegebenen „ parent “.

[virtual noexcept] QAbstractItemView::~QAbstractItemView()

Das ruiniert die Aussicht.

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

Dieses Signal wird ausgelöst, wenn das durch „ index “ angegebene Element vom Benutzer aktiviert wird. Wie Elemente aktiviert werden, hängt von der jeweiligen Plattform ab; beispielsweise durch Einfach- oder Doppelklick auf das Element oder durch Drücken der Return- oder Enter-Taste, wenn das Element aktiv ist.

Siehe auch clicked(), doubleClicked(), entered() und pressed().

[slot] void QAbstractItemView::clearSelection()

Hebt die Auswahl aller ausgewählten Elemente auf. Der aktuelle Index wird dabei nicht geändert.

Siehe auch setSelection() und selectAll().

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

Dieses Signal wird ausgelöst, wenn die linke Maustaste gedrückt wird. Das Element, auf das geklickt wurde, wird durch ` index` angegeben. Das Signal wird nur ausgelöst, wenn der Index gültig ist.

Siehe auch activated(), doubleClicked(), entered() und pressed().

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

Schließt die angegebene Ansicht „ editor “ und gibt sie frei. Mit dem Hinweis „ hint “ wird festgelegt, wie die Ansicht auf das Ende des Bearbeitungsvorgangs reagieren soll. Der Hinweis kann beispielsweise angeben, dass das nächste Element in der Ansicht zur Bearbeitung geöffnet werden soll.

Siehe auch ` edit()` und ` commitData()`.

void QAbstractItemView::closePersistentEditor(const QModelIndex &index)

Schließt den persistenten Editor für das Element unter der angegebenen Adresse index.

Siehe auch openPersistentEditor() und isPersistentEditorOpen().

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

Übernehmen Sie die Daten aus dem „ editor “ in das Modell.

Siehe auch ` closeEditor()`.

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

Dieser Slot wird aufgerufen, wenn ein neues Element zum aktuellen Element wird. Das bisherige aktuelle Element wird durch den Index „ previous “ angegeben, das neue Element durch den Index „ current “.

Wenn Sie mehr über Änderungen an Elementen erfahren möchten, lesen Sie die Beschreibung des Signals „ dataChanged()“.

QModelIndex QAbstractItemView::currentIndex() const

Gibt den Modellindex des aktuellen Elements zurück.

Siehe auch „ setCurrentIndex()“.

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

Dieser Slot wird aufgerufen, wenn Elemente mit dem angegebenen „ roles “ im Modell geändert werden. Die geänderten Elemente sind diejenigen aus dem Bereich von topLeft bis einschließlich bottomRight. Wird nur ein Element geändert, gilt: topLeft == bottomRight.

Die geänderten „ roles “ können entweder ein leerer Container sein (was bedeutet, dass sich alles geändert hat) oder ein nicht leerer Container mit der Teilmenge der Rollen, die sich geändert haben.

Hinweis: „ Qt::ToolTipRole “ wird von der Funktion „dataChanged()“ in den von Qt bereitgestellten Ansichten nicht berücksichtigt.

[protected] QPoint QAbstractItemView::dirtyRegionOffset() const

Gibt den Offset der geänderten Bereiche in der Ansicht zurück.

Wenn Sie ` scrollDirtyRegion()` verwenden und eine Methode ` paintEvent()` in einer Unterklasse von ` QAbstractItemView` implementieren, sollten Sie den durch das Paint-Ereignis angegebenen Bereich mit dem von dieser Funktion zurückgegebenen Offset verschieben.

Siehe auch ` scrollDirtyRegion()` und ` setDirtyRegion()`.

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

Dieses Signal wird ausgelöst, wenn ein Mausklick doppelt ausgeführt wird. Das Element, auf das doppelt geklickt wurde, wird durch ` index` angegeben. Das Signal wird nur ausgelöst, wenn der Index gültig ist.

Siehe auch „ clicked()“ und „ activated()“.

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

Umsetzung von: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn ein Drag-and-Drop-Vorgang in das Widget eintritt. Befindet sich der geziehte Gegenstand über einer gültigen Ablageposition (z. B. über einem Element, das das Ablegen akzeptiert), wird das Ereignis akzeptiert; andernfalls wird es ignoriert.

Siehe auch dropEvent() und startDrag().

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

Umsetzt: ` QAbstractScrollArea::dragLeaveEvent` (`QDragLeaveEvent *event`).

Diese Funktion wird aufgerufen, wenn das gezogene Element den Bereich verlässt. Das ` event ` beschreibt den Status des Drag-and-Drop-Vorgangs.

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

Umsetzt: ` QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)`.

Diese Funktion wird während eines Drag-and-Drop-Vorgangs über das Widget kontinuierlich mit dem angegebenen ` event ` aufgerufen. Sie kann dazu führen, dass die Ansicht scrollt, wenn der Benutzer beispielsweise eine Auswahl an den rechten oder unteren Rand der Ansicht zieht. In diesem Fall wird das Ereignis akzeptiert; andernfalls wird es ignoriert.

Siehe auch ` dropEvent()` und ` startDrag()`.

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

Implementiert: ` QAbstractScrollArea::dropEvent` (`QDropEvent *event`).

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn über dem Widget ein Drop-Ereignis auftritt. Wenn das Modell die aktuelle Position akzeptiert, wird das Drop-Ereignis akzeptiert; andernfalls wird es ignoriert.

Siehe auch ` startDrag()`.

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

Gibt die Position des Ablage-Indikators relativ zum nächstgelegenen Element zurück.

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

Beginnt mit der Bearbeitung des Elements, das der angegebenen „ index “ entspricht, sofern es bearbeitbar ist.

Beachten Sie, dass diese Funktion den aktuellen Index nicht ändert. Da der aktuelle Index das nächste und das vorherige zu bearbeitende Element definiert, kann es vorkommen, dass die Tastaturnavigation nicht wie erwartet funktioniert. Um ein konsistentes Navigationsverhalten zu gewährleisten, rufen Sie vor dieser Funktion „ setCurrentIndex()“ mit demselben Modellindex auf.

Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:

// 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); });
Weitere Beispiele und Ansätze finden Sie unter „Verbindung zu überladenen Slots herstellen“.

Siehe auch ` QModelIndex::flags()`.

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

Beginnt mit der Bearbeitung des Elements unter index, erstellt bei Bedarf einen Editor und gibt true zurück, wenn der Wert von „ State “ der Ansicht nun EditingState lautet; andernfalls wird false zurückgegeben.

Die Aktion, die den Bearbeitungsvorgang ausgelöst hat, wird durch „ trigger “ beschrieben, und das zugehörige Ereignis wird durch „ event “ angegeben.

Die Bearbeitung kann erzwungen werden, indem für ` trigger ` der Wert ` QAbstractItemView::AllEditTriggers` angegeben wird.

Siehe auch closeEditor().

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

Diese Funktion wird aufgerufen, wenn die angegebene ` editor ` zerstört wurde.

Siehe auch closeEditor().

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

Dieses Signal wird ausgelöst, wenn der Mauszeiger in das durch „ index “ angegebene Element gelangt. Damit diese Funktion genutzt werden kann, muss die Mausverfolgung aktiviert sein.

Siehe auch viewportEntered(), activated(), clicked(), doubleClicked() und pressed().

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

Umsetzt: ` QAbstractScrollArea::event(QEvent *event)`.

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

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

[protected] void QAbstractItemView::executeDelayedItemsLayout()

Führt die geplanten Layouts aus, ohne auf den Beginn der Ereignisverarbeitung zu warten.

Siehe auch ` scheduleDelayedItemsLayout()`.

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

Umsetzt: ` QWidget::focusInEvent` (`QFocusEvent *event`).

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn das Widget den Fokus erhält. Standardmäßig wird das Ereignis ignoriert.

Siehe auch „ setFocus()“ und „ focusOutEvent()“.

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

Implementiert: ` QWidget::focusNextPrevChild` (bool next).

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

Umsetzt: ` QWidget::focusOutEvent(QFocusEvent *event)`.

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn das Widget den Fokus verliert. Standardmäßig wird das Ereignis ignoriert.

Siehe auch clearFocus() und focusInEvent().

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

Gibt den horizontalen Versatz der Ansicht zurück.

In der Basisklasse ist dies eine rein virtuelle Funktion.

Siehe auch ` verticalOffset()`.

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

Gibt den Modellindex des Elements an den Viewport-Koordinaten point zurück.

In der Basisklasse ist dies eine rein virtuelle Funktion.

Siehe auch visualRect().

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

Gibt das Widget für das Element an der angegebenen Adresse index zurück.

Siehe auch setIndexWidget().

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

Initialisieren Sie die Struktur „ option “ mit der Palette, der Schriftart, dem Status, den Ausrichtungen usw. der Ansicht.

Hinweis: Implementierungen dieser Methode sollten den ` version `-Typ der empfangenen Struktur überprüfen, alle Mitglieder füllen, die der Implementierung bekannt sind, und das `version`-Mitglied auf den von der Implementierung unterstützten Wert setzen, bevor sie zurückkehren.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

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

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

Implementiert neu: ` QWidget::inputMethodQuery` (Qt::InputMethodQuery query) const.

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

Gibt „ true “ zurück, wenn das Element, auf das der angegebene „ index “ verweist, in der Ansicht ausgeblendet ist; andernfalls wird „ false “ zurückgegeben.

Das Ausblenden ist eine ansichtsbezogene Funktion. Beispielsweise kann in ` TableView ` eine Spalte als ausgeblendet markiert werden oder eine Zeile in ` TreeView`.

In der Basisklasse handelt es sich hierbei um eine rein virtuelle Funktion.

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

Gibt zurück, ob für das Element am Index index ein persistenter Editor geöffnet ist.

Siehe auch openPersistentEditor() und closePersistentEditor().

QAbstractItemDelegate *QAbstractItemView::itemDelegate() const

Gibt den von dieser Ansicht und diesem Modell verwendeten Item-Delegaten zurück. Dabei handelt es sich entweder um einen mit ` setItemDelegate()` festgelegten oder um den Standard-Delegaten.

Siehe auch ` setItemDelegate()`.

QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const

Gibt den von dieser Ansicht und diesem Modell verwendeten Element-Delegaten für die angegebene ` column` zurück. Mit dem Aufruf von ` itemDelegate()` können Sie einen Zeiger auf den aktuellen Delegaten für einen bestimmten Index abrufen.

Siehe auch ` setItemDelegateForColumn()`, ` itemDelegateForRow()` und ` itemDelegate()`.

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

Gibt den von dieser Ansicht und diesem Modell verwendeten Element-Delegaten für die angegebene „ index “ zurück.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ setItemDelegate()“, „ setItemDelegateForRow()“ und „ setItemDelegateForColumn()“.

QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const

Gibt den von dieser Ansicht und diesem Modell verwendeten Element-Delegaten für den angegebenen ` row` zurück oder ` nullptr `, falls kein Delegat zugewiesen wurde. Mit dem Aufruf von ` itemDelegate()` können Sie einen Zeiger auf den aktuellen Delegaten für einen bestimmten Index abrufen.

Siehe auch setItemDelegateForRow(), itemDelegateForColumn() und setItemDelegate().

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

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

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn ein Tastenereignis an das Widget gesendet wird. Die Standardimplementierung übernimmt grundlegende Cursorbewegungen, z. B. Nach oben, Nach unten, Nach links, Nach rechts, Home, Bild auf und Bild ab; das Signal „ activated()“ wird ausgelöst, wenn der aktuelle Index gültig ist und die Aktivierungstaste gedrückt wird (z. B. Enter oder Return, je nach Plattform). In dieser Funktion wird die Bearbeitung durch einen Tastendruck initiiert, z. B. wenn F2 gedrückt wird.

Siehe auch „ edit()“, „ moveCursor()“, „ keyboardSearch()“ und „ tabKeyNavigation “.

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

Springt zu dem Element, das am besten mit der Zeichenfolge „ search “ übereinstimmt, und wählt es aus. Wird kein Element gefunden, geschieht nichts.

In der Standardimplementierung wird die Suche zurückgesetzt, wenn „ search “ leer ist oder das Zeitintervall seit der letzten Suche den Wert „ QApplication::keyboardInputInterval()“ überschritten hat.

QAbstractItemModel *QAbstractItemView::model() const

Gibt das Modell zurück, das diese Ansicht darstellt.

Siehe auch ` setModel()`.

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

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

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn innerhalb des Widgets ein Doppelklick mit der Maustaste erfolgt. Befindet sich der Doppelklick auf einem gültigen Element, sendet sie das Signal ` doubleClicked()` aus und ruft ` edit()` für das Element auf.

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

Implementiert: ` QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e)`.

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn ein Mausbewegungsereignis an das Widget gesendet wird. Wenn gerade eine Auswahl stattfindet und neue Elemente darüber bewegt werden, wird die Auswahl erweitert; wenn gerade ein Ziehvorgang stattfindet, wird dieser fortgesetzt.

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

Implementiert: ` QAbstractScrollArea::mousePressEvent` (QMouseEvent *e).

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn eine Maustaste gedrückt wird, während sich der Cursor innerhalb des Widgets befindet. Wird ein gültiges Element gedrückt, wird dieses zum aktuellen Element gesetzt. Diese Funktion löst das Signal ` pressed()` aus.

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

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

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn eine Maustaste losgelassen wird, nachdem ein Mausklick-Ereignis auf dem Widget stattgefunden hat. Wenn ein Benutzer die Maustaste innerhalb Ihres Widgets drückt und die Maus dann an eine andere Stelle zieht, bevor er die Maustaste loslässt, erhält Ihr Widget das Loslass-Ereignis. Die Funktion sendet das Signal ` clicked()` aus, wenn ein Element gedrückt wurde.

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

Gibt ein ` QModelIndex `-Objekt zurück, das auf das nächste Objekt in der Ansicht verweist, basierend auf dem angegebenen ` cursorAction ` und den über ` modifiers` festgelegten Tastaturmodifikatoren.

In der Basisklasse ist dies eine rein virtuelle Funktion.

void QAbstractItemView::openPersistentEditor(const QModelIndex &index)

Öffnet einen persistenten Editor für das Element unter der angegebenen Adresse index. Falls noch kein Editor vorhanden ist, erstellt der Delegat einen neuen Editor.

Siehe auch „ closePersistentEditor()“ und „ isPersistentEditorOpen()“.

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

Dieses Signal wird ausgelöst, wenn eine Maustaste gedrückt wird. Das Element, auf dem die Maustaste gedrückt wurde, wird durch ` index` angegeben. Das Signal wird nur ausgelöst, wenn der Index gültig ist.

Verwenden Sie die Funktion ` QGuiApplication::mouseButtons()` (), um den Status der Maustasten abzurufen.

Siehe auch „ activated()“, „ clicked()“, „ doubleClicked()“ und „ entered()“.

[virtual slot] void QAbstractItemView::reset()

Setzt den internen Zustand der Ansicht zurück.

Warnung: Diese Funktion setzt geöffnete Editoren, die Positionen der Bildlaufleisten, Markierungen usw. zurück. Vorhandene Änderungen werden nicht übernommen. Wenn Sie Ihre Änderungen beim Zurücksetzen der Ansicht speichern möchten, können Sie diese Funktion neu implementieren, Ihre Änderungen übernehmen und anschließend die Implementierung der Oberklasse aufrufen.

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

Implementiert: ` QAbstractScrollArea::resizeEvent(QResizeEvent *event)`.

Diese Funktion wird mit dem angegebenen ` event ` aufgerufen, wenn ein Größenänderungsereignis an das Widget gesendet wird.

Siehe auch QWidget::resizeEvent().

QModelIndex QAbstractItemView::rootIndex() const

Gibt den Modellindex des Stammelements des Modells zurück. Das Stammelement ist das übergeordnete Element der obersten Elemente der Ansicht. Das Stammelement kann ungültig sein.

Siehe auch ` setRootIndex()`.

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

Dieser Slot wird aufgerufen, wenn Zeilen entfernt werden sollen. Bei den gelöschten Zeilen handelt es sich um diejenigen unter dem angegebenen parent im Bereich von start bis einschließlich end.

Siehe auch rowsInserted().

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

Dieser Slot wird aufgerufen, wenn Zeilen eingefügt werden. Bei den neuen Zeilen handelt es sich um diejenigen unter dem angegebenen parent im Bereich von start bis einschließlich end. Die Implementierung der Basisklasse ruft fetchMore() für das Modell auf, um zu prüfen, ob weitere Daten vorhanden sind.

Siehe auch rowsAboutToBeRemoved().

[protected] void QAbstractItemView::scheduleDelayedItemsLayout()

Legt ein Layout der Elemente in der Ansicht fest, das zu Beginn der Ereignisverarbeitung ausgeführt werden soll.

Selbst wenn `scheduleDelayedItemsLayout()` vor der Verarbeitung der Ereignisse mehrfach aufgerufen wird, führt die Ansicht das Layout nur einmal durch.

Siehe auch ` executeDelayedItemsLayout()`.

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

Bereitet die Ansicht für das Scrollen um (dx,dy) Pixel vor, indem die geänderten Bereiche in die entgegengesetzte Richtung verschoben werden. Sie müssen diese Funktion nur aufrufen, wenn Sie in Ihrer View-Unterklasse einen scrollbaren Viewport implementieren.

Wenn Sie ` scrollContentsBy()` in einer Unterklasse von ` QAbstractItemView` implementieren, rufen Sie diese Funktion auf, bevor Sie ` QWidget::scroll()` für den Viewport aufrufen. Alternativ können Sie auch einfach ` update()` aufrufen.

Siehe auch ` scrollContentsBy()`, ` dirtyRegionOffset()` und ` setDirtyRegion()`.

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

Blättert die Ansicht bei Bedarf, um sicherzustellen, dass das Element unter index sichtbar ist. Die Ansicht versucht, das Element entsprechend dem angegebenen hint zu positionieren.

In der Basisklasse handelt es sich hierbei um eine rein virtuelle Funktion.

[slot] void QAbstractItemView::scrollToBottom()

Blättert die Ansicht bis zum Ende.

Siehe auch scrollTo() und scrollToTop().

[slot] void QAbstractItemView::scrollToTop()

Blättert die Ansicht nach oben.

Siehe auch scrollTo() und scrollToBottom().

[virtual slot] void QAbstractItemView::selectAll()

Wählt alle Elemente in der Ansicht aus. Diese Funktion verwendet beim Auswählen das für die Ansicht festgelegte Auswahlverhalten.

Siehe auch setSelection(), selectedIndexes() und clearSelection().

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

Diese Hilfsfunktion gibt eine Liste aller ausgewählten und nicht ausgeblendeten Elementindizes in der Ansicht zurück. Die Liste enthält keine Duplikate und ist nicht sortiert.

Siehe auch „ QItemSelectionModel::selectedIndexes()“.

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

Dieser Slot wird aufgerufen, wenn sich die Auswahl ändert. Die vorherige Auswahl (die leer sein kann) wird durch ` deselected` angegeben, die neue Auswahl durch ` selected`.

Siehe auch setSelection().

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

Gibt die SelectionFlags zurück, die bei der Aktualisierung eines Auswahlmodells für das angegebene „ index “ verwendet werden sollen. Das Ergebnis hängt vom aktuellen „ selectionMode()“ sowie vom Benutzereingabeereignis „ event “ ab, das „ nullptr “ sein kann.

Implementieren Sie diese Funktion neu, um Ihr eigenes Auswahlverhalten zu definieren.

Siehe auch setSelection().

QItemSelectionModel *QAbstractItemView::selectionModel() const

Gibt das aktuelle Auswahlmodell zurück.

Siehe auch „ setSelectionModel()“ und „ selectedIndexes()“.

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

Setzt das aktuelle Element auf das Element unter index.

Sofern der aktuelle Auswahlmodus nicht „ NoSelection “ ist, wird das Element zusätzlich ausgewählt. Beachten Sie, dass diese Funktion auch die Startposition für alle neuen Auswahlen aktualisiert, die der Benutzer vornimmt.

Um ein Element als aktuelles Element festzulegen, ohne es auszuwählen, rufen Sie

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

Siehe auch „ currentIndex()“, „ currentChanged()“ und „ selectionMode “.

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

Markiert die angegebene ` region ` als „dirty“ und plant ihre Aktualisierung ein. Sie müssen diese Funktion nur aufrufen, wenn Sie eine eigene Unterklasse der `View` implementieren.

Siehe auch ` scrollDirtyRegion()` und ` dirtyRegionOffset()`.

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

Setzt die angegebene „ widget “ für das Element an der angegebenen Position „ index “ und überträgt damit die Eigentumsrechte des Widgets an den Viewport.

Ist ` index ` ungültig (z. B. wenn der Root-Index übergeben wird), führt diese Funktion keine Aktion aus.

Die Eigenschaft „ autoFillBackground “ des angegebenen „ widget “ muss auf „true“ gesetzt sein, andernfalls ist der Hintergrund des Widgets transparent, sodass sowohl die Modelldaten als auch das Element an der angegebenen Position „ index “ angezeigt werden.

Hinweis: Die Ansicht übernimmt die Eigentumsrechte am „ widget “. Das bedeutet: Wenn das Index-Widget A durch das Index-Widget B ersetzt wird, wird das Index-Widget A gelöscht. Im folgenden Codeausschnitt wird beispielsweise das „ QLineEdit “-Objekt gelöscht.

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

Diese Funktion sollte nur verwendet werden, um statische Inhalte innerhalb des sichtbaren Bereichs anzuzeigen, der einem Datenelement entspricht. Wenn Sie benutzerdefinierte dynamische Inhalte anzeigen oder ein benutzerdefiniertes Editor-Widget implementieren möchten, erstellen Sie stattdessen eine Unterklasse von ` QStyledItemDelegate `.

Siehe auch „ indexWidget()“ und „Delegate-Klassen“.

void QAbstractItemView::setItemDelegate(QAbstractItemDelegate *delegate)

Legt den Element-Delegaten für diese Ansicht und ihr Modell auf „ delegate “ fest. Dies ist nützlich, wenn Sie die vollständige Kontrolle über die Bearbeitung und Anzeige von Elementen wünschen.

Ein eventuell vorhandener Delegat wird entfernt, jedoch nicht gelöscht. „ QAbstractItemView “ übernimmt nicht die Eigentümerschaft an „ delegate “.

Warnung: Sie sollten nicht dieselbe Instanz eines Delegaten für mehrere Ansichten verwenden. Dies kann zu fehlerhaftem oder nicht intuitivem Bearbeitungsverhalten führen, da jede mit einem bestimmten Delegaten verbundene Ansicht das Signal „ closeEditor()“ empfangen und versuchen könnte, auf einen bereits geschlossenen Editor zuzugreifen, ihn zu ändern oder zu schließen.

Siehe auch ` itemDelegate()`.

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

Legt das angegebene Element delegate fest, das von dieser Ansicht und diesem Modell für das angegebene column verwendet wird. Alle Elemente auf column werden von delegate gezeichnet und verwaltet, anstatt den Standard-Delegaten (d. h. itemDelegate()) zu verwenden.

Alle vorhandenen Spalten-Delegaten für column werden entfernt, jedoch nicht gelöscht. QAbstractItemView übernimmt nicht die Eigentümerschaft an delegate.

Hinweis: Wenn ein Delegat sowohl einer Zeile als auch einer Spalte zugewiesen wurde, hat das Zeilen-Delegat Vorrang und verwaltet den Index der sich überschneidenden Zelle.

Warnung: Sie sollten nicht dieselbe Instanz eines Delegaten für mehrere Ansichten verwenden. Dies kann zu fehlerhaftem oder nicht intuitivem Bearbeitungsverhalten führen, da jede mit einem bestimmten Delegaten verbundene Ansicht das Signal „ closeEditor()“ empfangen und versuchen könnte, auf einen bereits geschlossenen Editor zuzugreifen, ihn zu ändern oder zu schließen.

Siehe auch „ itemDelegateForColumn()“, „ setItemDelegateForRow()“ und „ itemDelegate()“.

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

Legt das angegebene Element „ delegate “ fest, das von dieser Ansicht und diesem Modell für die angegebene „ row “ verwendet wird. Alle Elemente auf „ row “ werden von „ delegate “ gezeichnet und verwaltet, anstatt den Standard-Delegaten (d. h. „ itemDelegate()“) zu verwenden.

Ein eventuell vorhandener Zeilen-Delegat für row wird entfernt, jedoch nicht gelöscht. QAbstractItemView übernimmt nicht die Verantwortung für delegate.

Hinweis: Wenn ein Delegat sowohl einer Zeile als auch einer Spalte zugewiesen wurde, hat der Zeilendelegat (d. h. dieser Delegat) Vorrang und verwaltet den Index der sich überschneidenden Zelle.

Warnung: Sie sollten nicht dieselbe Instanz eines Delegaten zwischen verschiedenen Ansichten gemeinsam nutzen. Dies kann zu fehlerhaftem oder nicht intuitivem Bearbeitungsverhalten führen, da jede mit einem bestimmten Delegaten verbundene Ansicht das Signal „ closeEditor()“ empfangen und versuchen könnte, auf einen bereits geschlossenen Editor zuzugreifen, ihn zu ändern oder zu schließen.

Siehe auch „ itemDelegateForRow()“, „ setItemDelegateForColumn()“ und „ itemDelegate()“.

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

Legt das Auswahlmodell „ model “ für die anzuzeigende Ansicht fest.

Diese Funktion erstellt und setzt ein neues Auswahlmodell und ersetzt damit jedes Modell, das zuvor mit ` setSelectionModel()` festgelegt wurde. Das alte Auswahlmodell wird jedoch nicht gelöscht, da es möglicherweise von mehreren Ansichten gemeinsam genutzt wird. Wir empfehlen, das alte Auswahlmodell zu löschen, wenn es nicht mehr benötigt wird. Dies geschieht mit dem folgenden Code:

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

Wenn sowohl das alte Modell als auch das alte Auswahlmodell keine übergeordneten Objekte haben oder wenn deren übergeordnete Objekte langlebige Objekte sind, kann es vorteilhaft sein, deren ` deleteLater()`-Funktionen aufzurufen, um sie explizit zu löschen.

Die Ansicht übernimmt die Eigentümerschaft am Modell nur dann, wenn sie das übergeordnete Objekt des Modells ist, da das Modell möglicherweise von vielen verschiedenen Ansichten gemeinsam genutzt wird.

Siehe auch ` model()`, ` selectionModel()` und ` setSelectionModel()`.

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

Setzt das Stammelement auf das Element unter der angegebenen Adresse index.

Siehe auch rootIndex().

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

Wendet die Auswahlfunktion ` flags ` auf die Elemente an, die sich innerhalb des Rechtecks befinden oder von diesem berührt werden: ` rect`.

Bei der Implementierung einer eigenen ItemView sollte `setSelection` die Methode ` selectionModel()->select(selection, flags)` aufrufen, wobei `selection` entweder ein leeres ` QModelIndex ` oder ein ` QItemSelection ` ist, das alle Elemente enthält, die in ` rect` enthalten sind.

Siehe auch „ selectionCommand()“ und „ selectedIndexes()“.

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

Setzt das aktuelle Auswahlmodell auf das angegebene „ selectionModel “.

Beachten Sie, dass, wenn Sie nach dem Aufruf dieser Funktion „ setModel()“ aufrufen, das angegebene „ selectionModel “ durch ein von der Ansicht erstelltes Modell ersetzt wird.

Hinweis: Es obliegt der Anwendung, das alte Auswahlmodell zu löschen, wenn es nicht mehr benötigt wird, d. h., wenn es nicht von anderen Ansichten verwendet wird. Dies geschieht automatisch, wenn sein übergeordnetes Objekt gelöscht wird. Wenn es jedoch kein übergeordnetes Objekt hat oder wenn das übergeordnete Objekt ein langlebiges Objekt ist, kann es sinnvoll sein, die Funktion ` deleteLater()` aufzurufen, um es explizit zu löschen.

Siehe auch ` selectionModel()`, ` setModel()` und ` clearSelection()`.

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

Setzt den Status der Elementansicht auf den angegebenen Wert „ state “.

Siehe auch ` state()`.

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

Gibt den Breitenhinweis für das angegebene „ column “ zurück oder -1, wenn kein Modell vorhanden ist.

Diese Funktion wird in Ansichten mit einer horizontalen Kopfzeile verwendet, um anhand des Inhalts des angegebenen ` column` den Größenhinweis für einen Kopfzeilenabschnitt zu ermitteln.

Siehe auch ` sizeHintForRow()`.

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

Gibt den Größenhinweis für das Element mit dem angegebenen index zurück oder eine ungültige Größe bei ungültigen Indizes.

Siehe auch ` sizeHintForRow()` und ` sizeHintForColumn()`.

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

Gibt den Höhenhinweis für das angegebene „ row “ zurück oder -1, wenn kein Modell vorhanden ist.

Die zurückgegebene Höhe wird anhand der Größenhinweise der Elemente des angegebenen ` row` berechnet, d. h., der zurückgegebene Wert entspricht der maximalen Höhe unter den Elementen. Beachten Sie, dass Sie zur Steuerung der Höhe einer Zeile die Funktion ` QAbstractItemDelegate::sizeHint()` neu implementieren müssen.

Diese Funktion wird in Ansichten mit vertikaler Kopfzeile verwendet, um anhand des Inhalts des angegebenen ` row` den Größenhinweis für einen Kopfzeilenabschnitt zu ermitteln.

Siehe auch ` sizeHintForColumn()`.

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

Startet einen Drag-Vorgang, indem „drag->exec()“ mit dem angegebenen „ supportedActions “ aufgerufen wird.

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

Gibt den Status der Elementansicht zurück.

Siehe auch ` setState()`.

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

Umsetzt: ` QObject::timerEvent` (`QTimerEvent *event`).

Diese Funktion wird mit dem angegebenen event aufgerufen, wenn ein Timer-Ereignis an das Widget gesendet wird.

Siehe auch QObject::timerEvent().

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

Aktualisiert den von der angegebenen „ index “ belegten Bereich.

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

Aktualisiert die Geometrie der untergeordneten Widgets der Ansicht.

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

Gibt den vertikalen Versatz der Ansicht zurück.

In der Basisklasse ist dies eine rein virtuelle Funktion.

Siehe auch ` horizontalOffset()`.

[signal] void QAbstractItemView::viewportEntered()

Dieses Signal wird ausgelöst, wenn der Mauszeiger in den Darstellungsbereich gelangt. Damit diese Funktion genutzt werden kann, muss die Mausverfolgung aktiviert sein.

Siehe auch entered().

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

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

Diese Funktion dient zur Verarbeitung von Tooltips und des „Was ist das?“-Modus, sofern das angegebene ` event ` ein ` QEvent::ToolTip` oder ein ` QEvent::WhatsThis` ist. Alle anderen Ereignisse werden an den `viewportEvent()`-Handler der Basisklasse weitergeleitet.

Gibt „ true “ zurück, wenn „ event “ erkannt und verarbeitet wurde; andernfalls wird „ false “ zurückgegeben.

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

Implementiert: ` QAbstractScrollArea::viewportSizeHint()` const.

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

Gibt das Rechteck im Ansichtsbereich zurück, das das Element unter index einnimmt.

Wenn Ihr Element in mehreren Bereichen angezeigt wird, sollte `visualRect` den primären Bereich zurückgeben, der den Index enthält, und nicht den gesamten Bereich, den der Index möglicherweise umfasst, berührt oder in dem er eine Zeichnung verursacht.

In der Basisklasse ist dies eine rein virtuelle Funktion.

Siehe auch „ indexAt()“ und „ visualRegionForSelection()“.

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

Gibt den Bereich aus dem Ansichtsfenster der Elemente im angegebenen ` selection` zurück.

In der Basisklasse ist dies eine rein virtuelle Funktion.

Siehe auch „ visualRect()“ und „ 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.