29 Q_PROPERTY(
bool autoScroll READ hasAutoScroll WRITE setAutoScroll)
30 Q_PROPERTY(
int autoScrollMargin READ autoScrollMargin WRITE setAutoScrollMargin)
31 Q_PROPERTY(EditTriggers editTriggers READ editTriggers WRITE setEditTriggers)
32 Q_PROPERTY(
bool tabKeyNavigation READ tabKeyNavigation WRITE setTabKeyNavigation)
33#if QT_CONFIG(draganddrop)
34 Q_PROPERTY(
bool showDropIndicator READ showDropIndicator WRITE setDropIndicatorShown)
35 Q_PROPERTY(
bool dragEnabled READ dragEnabled WRITE setDragEnabled)
36 Q_PROPERTY(
bool dragDropOverwriteMode READ dragDropOverwriteMode WRITE setDragDropOverwriteMode)
37 Q_PROPERTY(DragDropMode dragDropMode READ dragDropMode WRITE setDragDropMode)
38 Q_PROPERTY(Qt::DropAction defaultDropAction READ defaultDropAction WRITE setDefaultDropAction)
40 Q_PROPERTY(
bool alternatingRowColors READ alternatingRowColors WRITE setAlternatingRowColors)
41 Q_PROPERTY(SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
42 Q_PROPERTY(SelectionBehavior selectionBehavior READ selectionBehavior
43 WRITE setSelectionBehavior)
44 Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize NOTIFY iconSizeChanged)
45 Q_PROPERTY(Qt::TextElideMode textElideMode READ textElideMode WRITE setTextElideMode)
46 Q_PROPERTY(ScrollMode verticalScrollMode READ verticalScrollMode WRITE setVerticalScrollMode
47 RESET resetVerticalScrollMode)
48 Q_PROPERTY(ScrollMode horizontalScrollMode READ horizontalScrollMode
49 WRITE setHorizontalScrollMode RESET resetHorizontalScrollMode)
50 Q_PROPERTY(
int updateThreshold READ updateThreshold WRITE setUpdateThreshold)
51 Q_PROPERTY(Qt::MatchFlags keyboardSearchFlags READ keyboardSearchFlags
52 WRITE setKeyboardSearchFlags)
64 enum SelectionBehavior {
69 Q_ENUM(SelectionBehavior)
89 Q_DECLARE_FLAGS(EditTriggers, EditTrigger)
98 explicit QAbstractItemView(QWidget *parent =
nullptr);
101 virtual void setModel(QAbstractItemModel *model);
102 QAbstractItemModel *model()
const;
104 virtual void setSelectionModel(QItemSelectionModel *selectionModel);
105 QItemSelectionModel *selectionModel()
const;
107 void setItemDelegate(QAbstractItemDelegate *delegate);
108 QAbstractItemDelegate *itemDelegate()
const;
110 void setSelectionMode(QAbstractItemView::SelectionMode mode);
111 QAbstractItemView::SelectionMode selectionMode()
const;
113 void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior);
114 QAbstractItemView::SelectionBehavior selectionBehavior()
const;
116 QModelIndex currentIndex()
const;
117 QModelIndex rootIndex()
const;
119 void setEditTriggers(EditTriggers triggers);
120 EditTriggers editTriggers()
const;
122 void setVerticalScrollMode(ScrollMode mode);
123 ScrollMode verticalScrollMode()
const;
124 void resetVerticalScrollMode();
126 void setHorizontalScrollMode(ScrollMode mode);
127 ScrollMode horizontalScrollMode()
const;
128 void resetHorizontalScrollMode();
130 void setAutoScroll(
bool enable);
131 bool hasAutoScroll()
const;
133 void setAutoScrollMargin(
int margin);
134 int autoScrollMargin()
const;
136 void setTabKeyNavigation(
bool enable);
137 bool tabKeyNavigation()
const;
139#if QT_CONFIG(draganddrop)
140 void setDropIndicatorShown(
bool enable);
141 bool showDropIndicator()
const;
143 void setDragEnabled(
bool enable);
144 bool dragEnabled()
const;
146 void setDragDropOverwriteMode(
bool overwrite);
147 bool dragDropOverwriteMode()
const;
158 void setDragDropMode(DragDropMode behavior);
159 DragDropMode dragDropMode()
const;
161 void setDefaultDropAction(Qt::DropAction dropAction);
162 Qt::DropAction defaultDropAction()
const;
165 void setAlternatingRowColors(
bool enable);
166 bool alternatingRowColors()
const;
168 void setIconSize(
const QSize &size);
169 QSize iconSize()
const;
171 void setTextElideMode(Qt::TextElideMode mode);
172 Qt::TextElideMode textElideMode()
const;
174 virtual void keyboardSearch(
const QString &search);
176 virtual QRect visualRect(
const QModelIndex &index)
const = 0;
177 virtual void scrollTo(
const QModelIndex &index, ScrollHint hint = EnsureVisible) = 0;
178 virtual QModelIndex indexAt(
const QPoint &point)
const = 0;
180 QSize sizeHintForIndex(
const QModelIndex &index)
const;
181 virtual int sizeHintForRow(
int row)
const;
182 virtual int sizeHintForColumn(
int column)
const;
184 int updateThreshold()
const;
185 void setUpdateThreshold(
int threshold);
187 Qt::MatchFlags keyboardSearchFlags()
const;
188 void setKeyboardSearchFlags(Qt::MatchFlags searchFlags);
190 void openPersistentEditor(
const QModelIndex &index);
191 void closePersistentEditor(
const QModelIndex &index);
192 bool isPersistentEditorOpen(
const QModelIndex &index)
const;
194 void setIndexWidget(
const QModelIndex &index, QWidget *widget);
195 QWidget *indexWidget(
const QModelIndex &index)
const;
197 void setItemDelegateForRow(
int row, QAbstractItemDelegate *delegate);
198 QAbstractItemDelegate *itemDelegateForRow(
int row)
const;
200 void setItemDelegateForColumn(
int column, QAbstractItemDelegate *delegate);
201 QAbstractItemDelegate *itemDelegateForColumn(
int column)
const;
203#if QT_DEPRECATED_SINCE(6
, 0
)
204 QT_DEPRECATED_VERSION_X_6_0(
"Use itemDelegateForIndex instead")
205 QAbstractItemDelegate *itemDelegate(
const QModelIndex &index)
const
206 {
return itemDelegateForIndex(index); }
208 virtual QAbstractItemDelegate *itemDelegateForIndex(
const QModelIndex &index)
const;
210 virtual QVariant inputMethodQuery(Qt::InputMethodQuery query)
const override;
212 using QWidget::update;
215 virtual void reset();
216 virtual void setRootIndex(
const QModelIndex &index);
217 virtual void doItemsLayout();
218 virtual void selectAll();
219 void edit(
const QModelIndex &index);
220 void clearSelection();
221 void setCurrentIndex(
const QModelIndex &index);
223 void scrollToBottom();
224 void update(
const QModelIndex &index);
227 virtual void dataChanged(
const QModelIndex &topLeft,
const QModelIndex &bottomRight,
228 const QList<
int> &roles = QList<
int>());
229 virtual void rowsInserted(
const QModelIndex &parent,
int start,
int end);
230 virtual void rowsAboutToBeRemoved(
const QModelIndex &parent,
int start,
int end);
231 virtual void selectionChanged(
const QItemSelection &selected,
const QItemSelection &deselected);
232 virtual void currentChanged(
const QModelIndex ¤t,
const QModelIndex &previous);
233 virtual void updateEditorData();
234 virtual void updateEditorGeometries();
235 virtual void updateGeometries();
236 virtual void verticalScrollbarAction(
int action);
237 virtual void horizontalScrollbarAction(
int action);
238 virtual void verticalScrollbarValueChanged(
int value);
239 virtual void horizontalScrollbarValueChanged(
int value);
240 virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
241 virtual void commitData(QWidget *editor);
242 virtual void editorDestroyed(QObject *editor);
245 void pressed(
const QModelIndex &index);
246 void clicked(
const QModelIndex &index);
247 void doubleClicked(
const QModelIndex &index);
249 void activated(
const QModelIndex &index);
250 void entered(
const QModelIndex &index);
251 void viewportEntered();
253 void iconSizeChanged(
const QSize &size);
256 QAbstractItemView(QAbstractItemViewPrivate &, QWidget *parent =
nullptr);
258 enum CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight,
259 MoveHome, MoveEnd, MovePageUp, MovePageDown,
260 MoveNext, MovePrevious };
261 virtual QModelIndex moveCursor(CursorAction cursorAction,
262 Qt::KeyboardModifiers modifiers) = 0;
264 virtual int horizontalOffset()
const = 0;
265 virtual int verticalOffset()
const = 0;
267 virtual bool isIndexHidden(
const QModelIndex &index)
const = 0;
269 virtual void setSelection(
const QRect &rect, QItemSelectionModel::SelectionFlags command) = 0;
270 virtual QRegion visualRegionForSelection(
const QItemSelection &selection)
const = 0;
271 virtual QModelIndexList selectedIndexes()
const;
273 virtual bool edit(
const QModelIndex &index, EditTrigger trigger, QEvent *event);
275 virtual QItemSelectionModel::SelectionFlags selectionCommand(
const QModelIndex &index,
276 const QEvent *event =
nullptr)
const;
278#if QT_CONFIG(draganddrop)
279 virtual void startDrag(Qt::DropActions supportedActions);
282 virtual void initViewItemOption(QStyleOptionViewItem *option)
const;
295 void setState(State state);
297 void scheduleDelayedItemsLayout();
298 void executeDelayedItemsLayout();
300 void setDirtyRegion(
const QRegion ®ion);
301 void scrollDirtyRegion(
int dx,
int dy);
302 QPoint dirtyRegionOffset()
const;
304 void startAutoScroll();
305 void stopAutoScroll();
308 bool focusNextPrevChild(
bool next) override;
309 bool event(QEvent *event) override;
310 bool viewportEvent(QEvent *event) override;
311 void mousePressEvent(QMouseEvent *event) override;
312 void mouseMoveEvent(QMouseEvent *event) override;
313 void mouseReleaseEvent(QMouseEvent *event) override;
314 void mouseDoubleClickEvent(QMouseEvent *event) override;
315#if QT_CONFIG(draganddrop)
316 void dragEnterEvent(QDragEnterEvent *event) override;
317 void dragMoveEvent(QDragMoveEvent *event) override;
318 void dragLeaveEvent(QDragLeaveEvent *event) override;
319 void dropEvent(QDropEvent *event) override;
321 void focusInEvent(QFocusEvent *event) override;
322 void focusOutEvent(QFocusEvent *event) override;
323 void keyPressEvent(QKeyEvent *event) override;
324 void resizeEvent(QResizeEvent *event) override;
325 void timerEvent(QTimerEvent *event) override;
326 void inputMethodEvent(QInputMethodEvent *event) override;
327 bool eventFilter(QObject *object, QEvent *event) override;
329#if QT_CONFIG(draganddrop)
330 enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport };
331 DropIndicatorPosition dropIndicatorPosition()
const;
334 QSize viewportSizeHint()
const override;
337 Q_DECLARE_PRIVATE(QAbstractItemView)
338 Q_DISABLE_COPY(QAbstractItemView)
340 friend class ::tst_QAbstractItemView;
341 friend class ::tst_QTreeView;
342 friend class QTreeViewPrivate;
343 friend class QListModeViewBase;
344 friend class QListViewPrivate;
345 friend class QAbstractSlider;
346 friend class QComboBoxPrivate;