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)
62 enum SelectionBehavior {
67 Q_ENUM(SelectionBehavior)
87 Q_DECLARE_FLAGS(EditTriggers, EditTrigger)
96 explicit QAbstractItemView(QWidget *parent =
nullptr);
99 virtual void setModel(QAbstractItemModel *model);
100 QAbstractItemModel *model()
const;
102 virtual void setSelectionModel(QItemSelectionModel *selectionModel);
103 QItemSelectionModel *selectionModel()
const;
105 void setItemDelegate(QAbstractItemDelegate *delegate);
106 QAbstractItemDelegate *itemDelegate()
const;
108 void setSelectionMode(QAbstractItemView::SelectionMode mode);
109 QAbstractItemView::SelectionMode selectionMode()
const;
111 void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior);
112 QAbstractItemView::SelectionBehavior selectionBehavior()
const;
114 QModelIndex currentIndex()
const;
115 QModelIndex rootIndex()
const;
117 void setEditTriggers(EditTriggers triggers);
118 EditTriggers editTriggers()
const;
120 void setVerticalScrollMode(ScrollMode mode);
121 ScrollMode verticalScrollMode()
const;
122 void resetVerticalScrollMode();
124 void setHorizontalScrollMode(ScrollMode mode);
125 ScrollMode horizontalScrollMode()
const;
126 void resetHorizontalScrollMode();
128 void setAutoScroll(
bool enable);
129 bool hasAutoScroll()
const;
131 void setAutoScrollMargin(
int margin);
132 int autoScrollMargin()
const;
134 void setTabKeyNavigation(
bool enable);
135 bool tabKeyNavigation()
const;
137#if QT_CONFIG(draganddrop)
138 void setDropIndicatorShown(
bool enable);
139 bool showDropIndicator()
const;
141 void setDragEnabled(
bool enable);
142 bool dragEnabled()
const;
144 void setDragDropOverwriteMode(
bool overwrite);
145 bool dragDropOverwriteMode()
const;
156 void setDragDropMode(DragDropMode behavior);
157 DragDropMode dragDropMode()
const;
159 void setDefaultDropAction(Qt::DropAction dropAction);
160 Qt::DropAction defaultDropAction()
const;
163 void setAlternatingRowColors(
bool enable);
164 bool alternatingRowColors()
const;
166 void setIconSize(
const QSize &size);
167 QSize iconSize()
const;
169 void setTextElideMode(Qt::TextElideMode mode);
170 Qt::TextElideMode textElideMode()
const;
172 virtual void keyboardSearch(
const QString &search);
174 virtual QRect visualRect(
const QModelIndex &index)
const = 0;
175 virtual void scrollTo(
const QModelIndex &index, ScrollHint hint = EnsureVisible) = 0;
176 virtual QModelIndex indexAt(
const QPoint &point)
const = 0;
178 QSize sizeHintForIndex(
const QModelIndex &index)
const;
179 virtual int sizeHintForRow(
int row)
const;
180 virtual int sizeHintForColumn(
int column)
const;
182 int updateThreshold()
const;
183 void setUpdateThreshold(
int threshold);
185 void openPersistentEditor(
const QModelIndex &index);
186 void closePersistentEditor(
const QModelIndex &index);
187 bool isPersistentEditorOpen(
const QModelIndex &index)
const;
189 void setIndexWidget(
const QModelIndex &index, QWidget *widget);
190 QWidget *indexWidget(
const QModelIndex &index)
const;
192 void setItemDelegateForRow(
int row, QAbstractItemDelegate *delegate);
193 QAbstractItemDelegate *itemDelegateForRow(
int row)
const;
195 void setItemDelegateForColumn(
int column, QAbstractItemDelegate *delegate);
196 QAbstractItemDelegate *itemDelegateForColumn(
int column)
const;
198#if QT_DEPRECATED_SINCE(6
, 0
)
199 QT_DEPRECATED_VERSION_X_6_0(
"Use itemDelegateForIndex instead")
200 QAbstractItemDelegate *itemDelegate(
const QModelIndex &index)
const
201 {
return itemDelegateForIndex(index); }
203 virtual QAbstractItemDelegate *itemDelegateForIndex(
const QModelIndex &index)
const;
205 virtual QVariant inputMethodQuery(Qt::InputMethodQuery query)
const override;
207 using QAbstractScrollArea::update;
210 virtual void reset();
211 virtual void setRootIndex(
const QModelIndex &index);
212 virtual void doItemsLayout();
213 virtual void selectAll();
214 void edit(
const QModelIndex &index);
215 void clearSelection();
216 void setCurrentIndex(
const QModelIndex &index);
218 void scrollToBottom();
219 void update(
const QModelIndex &index);
222 virtual void dataChanged(
const QModelIndex &topLeft,
const QModelIndex &bottomRight,
223 const QList<
int> &roles = QList<
int>());
224 virtual void rowsInserted(
const QModelIndex &parent,
int start,
int end);
225 virtual void rowsAboutToBeRemoved(
const QModelIndex &parent,
int start,
int end);
226 virtual void selectionChanged(
const QItemSelection &selected,
const QItemSelection &deselected);
227 virtual void currentChanged(
const QModelIndex ¤t,
const QModelIndex &previous);
228 virtual void updateEditorData();
229 virtual void updateEditorGeometries();
230 virtual void updateGeometries();
231 virtual void verticalScrollbarAction(
int action);
232 virtual void horizontalScrollbarAction(
int action);
233 virtual void verticalScrollbarValueChanged(
int value);
234 virtual void horizontalScrollbarValueChanged(
int value);
235 virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
236 virtual void commitData(QWidget *editor);
237 virtual void editorDestroyed(QObject *editor);
240 void pressed(
const QModelIndex &index);
241 void clicked(
const QModelIndex &index);
242 void doubleClicked(
const QModelIndex &index);
244 void activated(
const QModelIndex &index);
245 void entered(
const QModelIndex &index);
246 void viewportEntered();
248 void iconSizeChanged(
const QSize &size);
251 QAbstractItemView(QAbstractItemViewPrivate &, QWidget *parent =
nullptr);
253 enum CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight,
254 MoveHome, MoveEnd, MovePageUp, MovePageDown,
255 MoveNext, MovePrevious };
256 virtual QModelIndex moveCursor(CursorAction cursorAction,
257 Qt::KeyboardModifiers modifiers) = 0;
259 virtual int horizontalOffset()
const = 0;
260 virtual int verticalOffset()
const = 0;
262 virtual bool isIndexHidden(
const QModelIndex &index)
const = 0;
264 virtual void setSelection(
const QRect &rect, QItemSelectionModel::SelectionFlags command) = 0;
265 virtual QRegion visualRegionForSelection(
const QItemSelection &selection)
const = 0;
266 virtual QModelIndexList selectedIndexes()
const;
268 virtual bool edit(
const QModelIndex &index, EditTrigger trigger, QEvent *event);
270 virtual QItemSelectionModel::SelectionFlags selectionCommand(
const QModelIndex &index,
271 const QEvent *event =
nullptr)
const;
273#if QT_CONFIG(draganddrop)
274 virtual void startDrag(Qt::DropActions supportedActions);
277 virtual void initViewItemOption(QStyleOptionViewItem *option)
const;
290 void setState(State state);
292 void scheduleDelayedItemsLayout();
293 void executeDelayedItemsLayout();
295 void setDirtyRegion(
const QRegion ®ion);
296 void scrollDirtyRegion(
int dx,
int dy);
297 QPoint dirtyRegionOffset()
const;
299 void startAutoScroll();
300 void stopAutoScroll();
303 bool focusNextPrevChild(
bool next) override;
304 bool event(QEvent *event) override;
305 bool viewportEvent(QEvent *event) override;
306 void mousePressEvent(QMouseEvent *event) override;
307 void mouseMoveEvent(QMouseEvent *event) override;
308 void mouseReleaseEvent(QMouseEvent *event) override;
309 void mouseDoubleClickEvent(QMouseEvent *event) override;
310#if QT_CONFIG(draganddrop)
311 void dragEnterEvent(QDragEnterEvent *event) override;
312 void dragMoveEvent(QDragMoveEvent *event) override;
313 void dragLeaveEvent(QDragLeaveEvent *event) override;
314 void dropEvent(QDropEvent *event) override;
316 void focusInEvent(QFocusEvent *event) override;
317 void focusOutEvent(QFocusEvent *event) override;
318 void keyPressEvent(QKeyEvent *event) override;
319 void resizeEvent(QResizeEvent *event) override;
320 void timerEvent(QTimerEvent *event) override;
321 void inputMethodEvent(QInputMethodEvent *event) override;
322 bool eventFilter(QObject *object, QEvent *event) override;
324#if QT_CONFIG(draganddrop)
325 enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport };
326 DropIndicatorPosition dropIndicatorPosition()
const;
329 QSize viewportSizeHint()
const override;
332 Q_DECLARE_PRIVATE(QAbstractItemView)
333 Q_DISABLE_COPY(QAbstractItemView)
335 friend class ::tst_QAbstractItemView;
336 friend class ::tst_QTreeView;
337 friend class QTreeViewPrivate;
338 friend class QListModeViewBase;
339 friend class QListViewPrivate;
340 friend class QAbstractSlider;
341 friend class QComboBoxPrivate;