qabstractitemview.sip 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. // qabstractitemview.sip generated by MetaSIP
  2. //
  3. // This file is part of the QtWidgets Python extension module.
  4. //
  5. // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
  6. //
  7. // This file is part of PyQt6.
  8. //
  9. // This file may be used under the terms of the GNU General Public License
  10. // version 3.0 as published by the Free Software Foundation and appearing in
  11. // the file LICENSE included in the packaging of this file. Please review the
  12. // following information to ensure the GNU General Public License version 3.0
  13. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  14. //
  15. // If you do not wish to use this file under the terms of the GPL version 3.0
  16. // then you may purchase a commercial license. For more information contact
  17. // info@riverbankcomputing.com.
  18. //
  19. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  20. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  21. class QAbstractItemView : public QAbstractScrollArea
  22. {
  23. %TypeHeaderCode
  24. #include <qabstractitemview.h>
  25. %End
  26. public:
  27. enum DragDropMode
  28. {
  29. NoDragDrop,
  30. DragOnly,
  31. DropOnly,
  32. DragDrop,
  33. InternalMove,
  34. };
  35. enum EditTrigger /BaseType=Flag/
  36. {
  37. NoEditTriggers,
  38. CurrentChanged,
  39. DoubleClicked,
  40. SelectedClicked,
  41. EditKeyPressed,
  42. AnyKeyPressed,
  43. AllEditTriggers,
  44. };
  45. typedef QFlags<QAbstractItemView::EditTrigger> EditTriggers;
  46. enum ScrollHint
  47. {
  48. EnsureVisible,
  49. PositionAtTop,
  50. PositionAtBottom,
  51. PositionAtCenter,
  52. };
  53. enum ScrollMode
  54. {
  55. ScrollPerItem,
  56. ScrollPerPixel,
  57. };
  58. enum SelectionBehavior
  59. {
  60. SelectItems,
  61. SelectRows,
  62. SelectColumns,
  63. };
  64. enum SelectionMode
  65. {
  66. NoSelection,
  67. SingleSelection,
  68. MultiSelection,
  69. ExtendedSelection,
  70. ContiguousSelection,
  71. };
  72. explicit QAbstractItemView(QWidget *parent /TransferThis/ = 0);
  73. virtual ~QAbstractItemView();
  74. virtual void setModel(QAbstractItemModel *model /KeepReference/);
  75. QAbstractItemModel *model() const;
  76. virtual void setSelectionModel(QItemSelectionModel *selectionModel /KeepReference/);
  77. QItemSelectionModel *selectionModel() const;
  78. void setItemDelegate(QAbstractItemDelegate *delegate /KeepReference/);
  79. QAbstractItemDelegate *itemDelegate() const;
  80. void setSelectionMode(QAbstractItemView::SelectionMode mode);
  81. QAbstractItemView::SelectionMode selectionMode() const;
  82. void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior);
  83. QAbstractItemView::SelectionBehavior selectionBehavior() const;
  84. QModelIndex currentIndex() const;
  85. QModelIndex rootIndex() const;
  86. void setEditTriggers(QAbstractItemView::EditTriggers triggers);
  87. QAbstractItemView::EditTriggers editTriggers() const;
  88. void setAutoScroll(bool enable);
  89. bool hasAutoScroll() const;
  90. void setTabKeyNavigation(bool enable);
  91. bool tabKeyNavigation() const;
  92. void setDropIndicatorShown(bool enable);
  93. bool showDropIndicator() const;
  94. void setDragEnabled(bool enable);
  95. bool dragEnabled() const;
  96. void setAlternatingRowColors(bool enable);
  97. bool alternatingRowColors() const;
  98. void setIconSize(const QSize &size);
  99. QSize iconSize() const;
  100. void setTextElideMode(Qt::TextElideMode mode);
  101. Qt::TextElideMode textElideMode() const;
  102. virtual void keyboardSearch(const QString &search);
  103. virtual QRect visualRect(const QModelIndex &index) const = 0;
  104. virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible) = 0;
  105. virtual QModelIndex indexAt(const QPoint &p) const = 0;
  106. QSize sizeHintForIndex(const QModelIndex &index) const;
  107. virtual int sizeHintForRow(int row) const;
  108. virtual int sizeHintForColumn(int column) const;
  109. void openPersistentEditor(const QModelIndex &index);
  110. void closePersistentEditor(const QModelIndex &index);
  111. void setIndexWidget(const QModelIndex &index, QWidget *widget /Transfer/);
  112. %MethodCode
  113. // We have to break the association with any existing widget.
  114. QWidget *w = sipCpp->indexWidget(*a0);
  115. if (w)
  116. {
  117. PyObject *wo = sipGetPyObject(w, sipType_QWidget);
  118. if (wo)
  119. sipTransferTo(wo, 0);
  120. }
  121. Py_BEGIN_ALLOW_THREADS
  122. sipCpp->setIndexWidget(*a0, a1);
  123. Py_END_ALLOW_THREADS
  124. %End
  125. QWidget *indexWidget(const QModelIndex &index) const;
  126. public slots:
  127. virtual void reset();
  128. virtual void setRootIndex(const QModelIndex &index);
  129. virtual void selectAll();
  130. void edit(const QModelIndex &index);
  131. void clearSelection();
  132. void setCurrentIndex(const QModelIndex &index);
  133. void scrollToTop();
  134. void scrollToBottom();
  135. void update();
  136. void update(const QModelIndex &index);
  137. protected slots:
  138. virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>());
  139. virtual void rowsInserted(const QModelIndex &parent, int start, int end);
  140. virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
  141. virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
  142. virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous);
  143. virtual void updateEditorData();
  144. virtual void updateEditorGeometries();
  145. virtual void updateGeometries();
  146. virtual void verticalScrollbarAction(int action);
  147. virtual void horizontalScrollbarAction(int action);
  148. virtual void verticalScrollbarValueChanged(int value);
  149. virtual void horizontalScrollbarValueChanged(int value);
  150. virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
  151. virtual void commitData(QWidget *editor);
  152. virtual void editorDestroyed(QObject *editor);
  153. signals:
  154. void pressed(const QModelIndex &index);
  155. void clicked(const QModelIndex &index);
  156. void doubleClicked(const QModelIndex &index);
  157. void activated(const QModelIndex &index);
  158. void entered(const QModelIndex &index);
  159. void viewportEntered();
  160. void iconSizeChanged(const QSize &size);
  161. protected:
  162. enum CursorAction
  163. {
  164. MoveUp,
  165. MoveDown,
  166. MoveLeft,
  167. MoveRight,
  168. MoveHome,
  169. MoveEnd,
  170. MovePageUp,
  171. MovePageDown,
  172. MoveNext,
  173. MovePrevious,
  174. };
  175. virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0;
  176. virtual int horizontalOffset() const = 0;
  177. virtual int verticalOffset() const = 0;
  178. virtual bool isIndexHidden(const QModelIndex &index) const = 0;
  179. virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) = 0;
  180. virtual QRegion visualRegionForSelection(const QItemSelection &selection) const = 0;
  181. virtual QModelIndexList selectedIndexes() const;
  182. virtual bool edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event);
  183. virtual QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &index, const QEvent *event = 0) const;
  184. virtual void startDrag(Qt::DropActions supportedActions);
  185. enum State
  186. {
  187. NoState,
  188. DraggingState,
  189. DragSelectingState,
  190. EditingState,
  191. ExpandingState,
  192. CollapsingState,
  193. AnimatingState,
  194. };
  195. QAbstractItemView::State state() const;
  196. void setState(QAbstractItemView::State state);
  197. void scheduleDelayedItemsLayout();
  198. void executeDelayedItemsLayout();
  199. void scrollDirtyRegion(int dx, int dy);
  200. void setDirtyRegion(const QRegion &region);
  201. QPoint dirtyRegionOffset() const;
  202. virtual bool event(QEvent *event);
  203. virtual bool viewportEvent(QEvent *e);
  204. virtual void mousePressEvent(QMouseEvent *e);
  205. virtual void mouseMoveEvent(QMouseEvent *e);
  206. virtual void mouseReleaseEvent(QMouseEvent *e);
  207. virtual void mouseDoubleClickEvent(QMouseEvent *e);
  208. virtual void dragEnterEvent(QDragEnterEvent *e);
  209. virtual void dragMoveEvent(QDragMoveEvent *e);
  210. virtual void dragLeaveEvent(QDragLeaveEvent *e);
  211. virtual void dropEvent(QDropEvent *e);
  212. virtual void focusInEvent(QFocusEvent *e);
  213. virtual void focusOutEvent(QFocusEvent *e);
  214. virtual void keyPressEvent(QKeyEvent *e);
  215. virtual void resizeEvent(QResizeEvent *e);
  216. virtual void timerEvent(QTimerEvent *e);
  217. enum DropIndicatorPosition
  218. {
  219. OnItem,
  220. AboveItem,
  221. BelowItem,
  222. OnViewport,
  223. };
  224. QAbstractItemView::DropIndicatorPosition dropIndicatorPosition() const;
  225. public:
  226. void setVerticalScrollMode(QAbstractItemView::ScrollMode mode);
  227. QAbstractItemView::ScrollMode verticalScrollMode() const;
  228. void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode);
  229. QAbstractItemView::ScrollMode horizontalScrollMode() const;
  230. void setDragDropOverwriteMode(bool overwrite);
  231. bool dragDropOverwriteMode() const;
  232. void setDragDropMode(QAbstractItemView::DragDropMode behavior);
  233. QAbstractItemView::DragDropMode dragDropMode() const;
  234. void setItemDelegateForRow(int row, QAbstractItemDelegate *delegate /KeepReference/);
  235. QAbstractItemDelegate *itemDelegateForRow(int row) const;
  236. void setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate /KeepReference/);
  237. QAbstractItemDelegate *itemDelegateForColumn(int column) const;
  238. virtual QAbstractItemDelegate *itemDelegateForIndex(const QModelIndex &index) const;
  239. virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
  240. void setAutoScrollMargin(int margin);
  241. int autoScrollMargin() const;
  242. protected:
  243. virtual bool focusNextPrevChild(bool next);
  244. virtual void inputMethodEvent(QInputMethodEvent *event);
  245. virtual QSize viewportSizeHint() const;
  246. virtual bool eventFilter(QObject *object, QEvent *event);
  247. public:
  248. void setDefaultDropAction(Qt::DropAction dropAction);
  249. Qt::DropAction defaultDropAction() const;
  250. void resetVerticalScrollMode();
  251. void resetHorizontalScrollMode();
  252. bool isPersistentEditorOpen(const QModelIndex &index) const;
  253. protected:
  254. virtual void initViewItemOption(QStyleOptionViewItem *option) const;
  255. public:
  256. %If (Qt_6_9_0 -)
  257. int updateThreshold() const;
  258. %End
  259. %If (Qt_6_9_0 -)
  260. void setUpdateThreshold(int threshold);
  261. %End
  262. %If (Qt_6_11_0 -)
  263. Qt::MatchFlags keyboardSearchFlags() const;
  264. %End
  265. %If (Qt_6_11_0 -)
  266. void setKeyboardSearchFlags(Qt::MatchFlags searchFlags);
  267. %End
  268. };