25 friend class QTreeModel;
26 friend class QTreeWidget;
27 friend class QTreeWidgetPrivate;
28 friend class QTreeWidgetItemIterator;
29 friend class QTreeWidgetItemPrivate;
31 enum ItemType { Type = 0, UserType = 1000 };
32 explicit QTreeWidgetItem(
int type = Type);
33 explicit QTreeWidgetItem(
const QStringList &strings,
int type = Type);
34 explicit QTreeWidgetItem(QTreeWidget *treeview,
int type = Type);
35 QTreeWidgetItem(QTreeWidget *treeview,
const QStringList &strings,
int type = Type);
36 QTreeWidgetItem(QTreeWidget *treeview, QTreeWidgetItem *after,
int type = Type);
37 explicit QTreeWidgetItem(QTreeWidgetItem *parent,
int type = Type);
38 QTreeWidgetItem(QTreeWidgetItem *parent,
const QStringList &strings,
int type = Type);
39 QTreeWidgetItem(QTreeWidgetItem *parent, QTreeWidgetItem *after,
int type = Type);
40 QTreeWidgetItem(
const QTreeWidgetItem &other);
41 virtual ~QTreeWidgetItem();
43 virtual QTreeWidgetItem *clone()
const;
45 inline QTreeWidget *treeWidget()
const {
return view; }
47 void setSelected(
bool select);
48 bool isSelected()
const;
50 void setHidden(
bool hide);
51 bool isHidden()
const;
53 void setExpanded(
bool expand);
54 bool isExpanded()
const;
56 void setFirstColumnSpanned(
bool span);
57 bool isFirstColumnSpanned()
const;
59 inline void setDisabled(
bool disabled);
60 inline bool isDisabled()
const;
62 enum ChildIndicatorPolicy { ShowIndicator, DontShowIndicator, DontShowIndicatorWhenChildless };
63 void setChildIndicatorPolicy(QTreeWidgetItem::ChildIndicatorPolicy policy);
64 QTreeWidgetItem::ChildIndicatorPolicy childIndicatorPolicy()
const;
66 Qt::ItemFlags flags()
const;
67 void setFlags(Qt::ItemFlags flags);
69 inline QString text(
int column)
const
70 {
return data(column, Qt::DisplayRole).toString(); }
71 inline void setText(
int column,
const QString &text);
73 inline QIcon icon(
int column)
const
74 {
return qvariant_cast<QIcon>(data(column, Qt::DecorationRole)); }
75 inline void setIcon(
int column,
const QIcon &icon);
77 inline QString statusTip(
int column)
const
78 {
return data(column, Qt::StatusTipRole).toString(); }
79 inline void setStatusTip(
int column,
const QString &statusTip);
82 inline QString toolTip(
int column)
const
83 {
return data(column, Qt::ToolTipRole).toString(); }
84 inline void setToolTip(
int column,
const QString &toolTip);
87#if QT_CONFIG(whatsthis)
88 inline QString whatsThis(
int column)
const
89 {
return data(column, Qt::WhatsThisRole).toString(); }
90 inline void setWhatsThis(
int column,
const QString &whatsThis);
93 inline QFont font(
int column)
const
94 {
return qvariant_cast<QFont>(data(column, Qt::FontRole)); }
95 inline void setFont(
int column,
const QFont &font);
97#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
98 inline int textAlignment(
int column)
const
99 {
return data(column, Qt::TextAlignmentRole).toInt(); }
101 inline Qt::Alignment textAlignment(
int column)
const
102 {
return qvariant_cast<Qt::Alignment>(data(column, Qt::TextAlignmentRole)); }
104#if QT_DEPRECATED_SINCE(6
, 4
)
105 QT_DEPRECATED_VERSION_X_6_4(
"Use the overload taking Qt::Alignment")
106 inline void setTextAlignment(
int column,
int alignment)
107 { setData(column, Qt::TextAlignmentRole, alignment); }
108 inline void setTextAlignment(
int column, Qt::AlignmentFlag alignment)
109 { setData(column, Qt::TextAlignmentRole, QVariant::fromValue(Qt::Alignment(alignment))); }
111 inline void setTextAlignment(
int column, Qt::Alignment alignment)
112 { setData(column, Qt::TextAlignmentRole, QVariant::fromValue(alignment)); }
114 inline QBrush background(
int column)
const
115 {
return qvariant_cast<QBrush>(data(column, Qt::BackgroundRole)); }
116 inline void setBackground(
int column,
const QBrush &brush)
117 { setData(column, Qt::BackgroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
119 inline QBrush foreground(
int column)
const
120 {
return qvariant_cast<QBrush>(data(column, Qt::ForegroundRole)); }
121 inline void setForeground(
int column,
const QBrush &brush)
122 { setData(column, Qt::ForegroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
124 inline Qt::CheckState checkState(
int column)
const
125 {
return qvariant_cast<Qt::CheckState>(data(column, Qt::CheckStateRole)); }
126 inline void setCheckState(
int column, Qt::CheckState state)
127 { setData(column, Qt::CheckStateRole, state); }
129 inline QSize sizeHint(
int column)
const
130 {
return qvariant_cast<QSize>(data(column, Qt::SizeHintRole)); }
131 inline void setSizeHint(
int column,
const QSize &size)
132 { setData(column, Qt::SizeHintRole, size.isValid() ? QVariant(size) : QVariant()); }
134 virtual QVariant data(
int column,
int role)
const;
135 virtual void setData(
int column,
int role,
const QVariant &value);
137 virtual bool operator<(
const QTreeWidgetItem &other)
const;
139#ifndef QT_NO_DATASTREAM
140 virtual void read(QDataStream &in);
141 virtual void write(QDataStream &out)
const;
143 QTreeWidgetItem &operator=(
const QTreeWidgetItem &other);
145 inline QTreeWidgetItem *parent()
const {
return par; }
146 inline QTreeWidgetItem *child(
int index)
const {
147 if (index < 0 || index >= children.size())
149 executePendingSort();
150 return children.at(index);
152 inline int childCount()
const {
return int(children.size()); }
153 inline int columnCount()
const {
return int(values.size()); }
154 inline int indexOfChild(QTreeWidgetItem *child)
const;
156 void addChild(QTreeWidgetItem *child);
157 void insertChild(
int index, QTreeWidgetItem *child);
158 void removeChild(QTreeWidgetItem *child);
159 QTreeWidgetItem *takeChild(
int index);
161 void addChildren(
const QList<QTreeWidgetItem*> &children);
162 void insertChildren(
int index,
const QList<QTreeWidgetItem*> &children);
163 QList<QTreeWidgetItem*> takeChildren();
165 inline int type()
const {
return rtti; }
166 inline void sortChildren(
int column, Qt::SortOrder order)
167 { sortChildren(column, order,
false); }
170 void emitDataChanged();
173 void sortChildren(
int column, Qt::SortOrder order,
bool climb);
174 QVariant childrenCheckState(
int column)
const;
176 void executePendingSort()
const;
177 QTreeModel *treeModel(QTreeWidget *v =
nullptr)
const;
181 QList<QList<QWidgetItemData>> values;
182 QTreeWidget *view =
nullptr;
183 QTreeWidgetItemPrivate *d;
184 QTreeWidgetItem *par =
nullptr;
187 QList<QTreeWidgetItem*> children;
188 Qt::ItemFlags itemFlags = Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled
189 | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
229 Q_PROPERTY(
int columnCount READ columnCount WRITE setColumnCount)
230 Q_PROPERTY(
int topLevelItemCount READ topLevelItemCount)
231#if QT_CONFIG(draganddrop)
232 Q_PROPERTY(Qt::DropActions supportedDragActions READ supportedDragActions WRITE setSupportedDragActions)
235 friend class QTreeModel;
236 friend class QTreeWidgetItem;
238 explicit QTreeWidget(QWidget *parent =
nullptr);
241 int columnCount()
const;
242 void setColumnCount(
int columns);
244 QTreeWidgetItem *invisibleRootItem()
const;
245 QTreeWidgetItem *topLevelItem(
int index)
const;
246 int topLevelItemCount()
const;
247 void insertTopLevelItem(
int index, QTreeWidgetItem *item);
248 void addTopLevelItem(QTreeWidgetItem *item);
249 QTreeWidgetItem *takeTopLevelItem(
int index);
250 int indexOfTopLevelItem(QTreeWidgetItem *item)
const;
252 void insertTopLevelItems(
int index,
const QList<QTreeWidgetItem*> &items);
253 void addTopLevelItems(
const QList<QTreeWidgetItem*> &items);
255 QTreeWidgetItem *headerItem()
const;
256 void setHeaderItem(QTreeWidgetItem *item);
257 void setHeaderLabels(
const QStringList &labels);
258 inline void setHeaderLabel(
const QString &label);
260 QTreeWidgetItem *currentItem()
const;
261 int currentColumn()
const;
262 void setCurrentItem(QTreeWidgetItem *item);
263 void setCurrentItem(QTreeWidgetItem *item,
int column);
264 void setCurrentItem(QTreeWidgetItem *item,
int column, QItemSelectionModel::SelectionFlags command);
266 QTreeWidgetItem *itemAt(
const QPoint &p)
const;
267 inline QTreeWidgetItem *itemAt(
int x,
int y)
const;
268 QRect visualItemRect(
const QTreeWidgetItem *item)
const;
270 int sortColumn()
const;
271 void sortItems(
int column, Qt::SortOrder order);
273 void editItem(QTreeWidgetItem *item,
int column = 0);
274 void openPersistentEditor(QTreeWidgetItem *item,
int column = 0);
275 void closePersistentEditor(QTreeWidgetItem *item,
int column = 0);
276 using QAbstractItemView::isPersistentEditorOpen;
277 bool isPersistentEditorOpen(QTreeWidgetItem *item,
int column = 0)
const;
279 QWidget *itemWidget(QTreeWidgetItem *item,
int column)
const;
280 void setItemWidget(QTreeWidgetItem *item,
int column, QWidget *widget);
281 inline void removeItemWidget(QTreeWidgetItem *item,
int column);
283 QList<QTreeWidgetItem*> selectedItems()
const;
284 QList<QTreeWidgetItem*> findItems(
const QString &text, Qt::MatchFlags flags,
285 int column = 0)
const;
287 QTreeWidgetItem *itemAbove(
const QTreeWidgetItem *item)
const;
288 QTreeWidgetItem *itemBelow(
const QTreeWidgetItem *item)
const;
290 QModelIndex indexFromItem(
const QTreeWidgetItem *item,
int column = 0)
const;
291 QTreeWidgetItem *itemFromIndex(
const QModelIndex &index)
const;
293 void setSelectionModel(QItemSelectionModel *selectionModel) override;
295#if QT_CONFIG(draganddrop)
296 Qt::DropActions supportedDragActions()
const;
297 void setSupportedDragActions(Qt::DropActions actions);
301 void scrollToItem(
const QTreeWidgetItem *item,
302 QAbstractItemView::ScrollHint hint = EnsureVisible);
303 void expandItem(
const QTreeWidgetItem *item);
304 void collapseItem(
const QTreeWidgetItem *item);
308 void itemPressed(QTreeWidgetItem *item,
int column);
309 void itemClicked(QTreeWidgetItem *item,
int column);
310 void itemDoubleClicked(QTreeWidgetItem *item,
int column);
311 void itemActivated(QTreeWidgetItem *item,
int column);
312 void itemEntered(QTreeWidgetItem *item,
int column);
313 void itemChanged(QTreeWidgetItem *item,
int column);
314 void itemExpanded(QTreeWidgetItem *item);
315 void itemCollapsed(QTreeWidgetItem *item);
316 void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
317 void itemSelectionChanged();
320 bool event(QEvent *e) override;
321 virtual QStringList mimeTypes()
const;
322 virtual QMimeData *mimeData(
const QList<QTreeWidgetItem *> &items)
const;
323 virtual bool dropMimeData(QTreeWidgetItem *parent,
int index,
324 const QMimeData *data, Qt::DropAction action);
325 virtual Qt::DropActions supportedDropActions()
const;
327#if QT_CONFIG(draganddrop)
328 void dropEvent(QDropEvent *event) override;
331 void setModel(QAbstractItemModel *model) override;
333 Q_DECLARE_PRIVATE(QTreeWidget)
334 Q_DISABLE_COPY(QTreeWidget)