24 friend class QTreeModel;
25 friend class QTreeWidget;
26 friend class QTreeWidgetPrivate;
27 friend class QTreeWidgetItemIterator;
28 friend class QTreeWidgetItemPrivate;
30 enum ItemType { Type = 0, UserType = 1000 };
31 explicit QTreeWidgetItem(
int type = Type);
32 explicit QTreeWidgetItem(
const QStringList &strings,
int type = Type);
33 explicit QTreeWidgetItem(QTreeWidget *treeview,
int type = Type);
34 QTreeWidgetItem(QTreeWidget *treeview,
const QStringList &strings,
int type = Type);
35 QTreeWidgetItem(QTreeWidget *treeview, QTreeWidgetItem *after,
int type = Type);
36 explicit QTreeWidgetItem(QTreeWidgetItem *parent,
int type = Type);
37 QTreeWidgetItem(QTreeWidgetItem *parent,
const QStringList &strings,
int type = Type);
38 QTreeWidgetItem(QTreeWidgetItem *parent, QTreeWidgetItem *after,
int type = Type);
39 QTreeWidgetItem(
const QTreeWidgetItem &other);
40 virtual ~QTreeWidgetItem();
42 virtual QTreeWidgetItem *clone()
const;
44 inline QTreeWidget *treeWidget()
const {
return view; }
46 void setSelected(
bool select);
47 bool isSelected()
const;
49 void setHidden(
bool hide);
50 bool isHidden()
const;
52 void setExpanded(
bool expand);
53 bool isExpanded()
const;
55 void setFirstColumnSpanned(
bool span);
56 bool isFirstColumnSpanned()
const;
58 inline void setDisabled(
bool disabled);
59 inline bool isDisabled()
const;
61 enum ChildIndicatorPolicy { ShowIndicator, DontShowIndicator, DontShowIndicatorWhenChildless };
62 void setChildIndicatorPolicy(QTreeWidgetItem::ChildIndicatorPolicy policy);
63 QTreeWidgetItem::ChildIndicatorPolicy childIndicatorPolicy()
const;
65 Qt::ItemFlags flags()
const;
66 void setFlags(Qt::ItemFlags flags);
68 inline QString text(
int column)
const
69 {
return data(column, Qt::DisplayRole).toString(); }
70 inline void setText(
int column,
const QString &text);
72 inline QIcon icon(
int column)
const
73 {
return qvariant_cast<QIcon>(data(column, Qt::DecorationRole)); }
74 inline void setIcon(
int column,
const QIcon &icon);
76 inline QString statusTip(
int column)
const
77 {
return data(column, Qt::StatusTipRole).toString(); }
78 inline void setStatusTip(
int column,
const QString &statusTip);
81 inline QString toolTip(
int column)
const
82 {
return data(column, Qt::ToolTipRole).toString(); }
83 inline void setToolTip(
int column,
const QString &toolTip);
86#if QT_CONFIG(whatsthis)
87 inline QString whatsThis(
int column)
const
88 {
return data(column, Qt::WhatsThisRole).toString(); }
89 inline void setWhatsThis(
int column,
const QString &whatsThis);
92 inline QFont font(
int column)
const
93 {
return qvariant_cast<QFont>(data(column, Qt::FontRole)); }
94 inline void setFont(
int column,
const QFont &font);
96#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
97 inline int textAlignment(
int column)
const
98 {
return data(column, Qt::TextAlignmentRole).toInt(); }
100 inline Qt::Alignment textAlignment(
int column)
const
101 {
return qvariant_cast<Qt::Alignment>(data(column, Qt::TextAlignmentRole)); }
103#if QT_DEPRECATED_SINCE(6
, 4
)
104 QT_DEPRECATED_VERSION_X_6_4(
"Use the overload taking Qt::Alignment")
105 inline void setTextAlignment(
int column,
int alignment)
106 { setData(column, Qt::TextAlignmentRole, alignment); }
107 inline void setTextAlignment(
int column, Qt::AlignmentFlag alignment)
108 { setData(column, Qt::TextAlignmentRole, QVariant::fromValue(Qt::Alignment(alignment))); }
110 inline void setTextAlignment(
int column, Qt::Alignment alignment)
111 { setData(column, Qt::TextAlignmentRole, QVariant::fromValue(alignment)); }
113 inline QBrush background(
int column)
const
114 {
return qvariant_cast<QBrush>(data(column, Qt::BackgroundRole)); }
115 inline void setBackground(
int column,
const QBrush &brush)
116 { setData(column, Qt::BackgroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
118 inline QBrush foreground(
int column)
const
119 {
return qvariant_cast<QBrush>(data(column, Qt::ForegroundRole)); }
120 inline void setForeground(
int column,
const QBrush &brush)
121 { setData(column, Qt::ForegroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
123 inline Qt::CheckState checkState(
int column)
const
124 {
return qvariant_cast<Qt::CheckState>(data(column, Qt::CheckStateRole)); }
125 inline void setCheckState(
int column, Qt::CheckState state)
126 { setData(column, Qt::CheckStateRole, state); }
128 inline QSize sizeHint(
int column)
const
129 {
return qvariant_cast<QSize>(data(column, Qt::SizeHintRole)); }
130 inline void setSizeHint(
int column,
const QSize &size)
131 { setData(column, Qt::SizeHintRole, size.isValid() ? QVariant(size) : QVariant()); }
133 virtual QVariant data(
int column,
int role)
const;
134 virtual void setData(
int column,
int role,
const QVariant &value);
136 virtual bool operator<(
const QTreeWidgetItem &other)
const;
138#ifndef QT_NO_DATASTREAM
139 virtual void read(QDataStream &in);
140 virtual void write(QDataStream &out)
const;
142 QTreeWidgetItem &operator=(
const QTreeWidgetItem &other);
144 inline QTreeWidgetItem *parent()
const {
return par; }
145 inline QTreeWidgetItem *child(
int index)
const {
146 if (index < 0 || index >= children.size())
148 executePendingSort();
149 return children.at(index);
151 inline int childCount()
const {
return int(children.size()); }
152 inline int columnCount()
const {
return int(values.size()); }
153 inline int indexOfChild(QTreeWidgetItem *child)
const;
155 void addChild(QTreeWidgetItem *child);
156 void insertChild(
int index, QTreeWidgetItem *child);
157 void removeChild(QTreeWidgetItem *child);
158 QTreeWidgetItem *takeChild(
int index);
160 void addChildren(
const QList<QTreeWidgetItem*> &children);
161 void insertChildren(
int index,
const QList<QTreeWidgetItem*> &children);
162 QList<QTreeWidgetItem*> takeChildren();
164 inline int type()
const {
return rtti; }
165 inline void sortChildren(
int column, Qt::SortOrder order)
166 { sortChildren(column, order,
false); }
169 void emitDataChanged();
172 void sortChildren(
int column, Qt::SortOrder order,
bool climb);
173 QVariant childrenCheckState(
int column)
const;
175 void executePendingSort()
const;
176 QTreeModel *treeModel(QTreeWidget *v =
nullptr)
const;
180 QList<QList<QWidgetItemData>> values;
181 QTreeWidget *view =
nullptr;
182 QTreeWidgetItemPrivate *d;
183 QTreeWidgetItem *par =
nullptr;
186 QList<QTreeWidgetItem*> children;
187 Qt::ItemFlags itemFlags = Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled
188 | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
228 Q_PROPERTY(
int columnCount READ columnCount WRITE setColumnCount)
229 Q_PROPERTY(
int topLevelItemCount READ topLevelItemCount)
231 friend class QTreeModel;
232 friend class QTreeWidgetItem;
234 explicit QTreeWidget(QWidget *parent =
nullptr);
237 int columnCount()
const;
238 void setColumnCount(
int columns);
240 QTreeWidgetItem *invisibleRootItem()
const;
241 QTreeWidgetItem *topLevelItem(
int index)
const;
242 int topLevelItemCount()
const;
243 void insertTopLevelItem(
int index, QTreeWidgetItem *item);
244 void addTopLevelItem(QTreeWidgetItem *item);
245 QTreeWidgetItem *takeTopLevelItem(
int index);
246 int indexOfTopLevelItem(QTreeWidgetItem *item)
const;
248 void insertTopLevelItems(
int index,
const QList<QTreeWidgetItem*> &items);
249 void addTopLevelItems(
const QList<QTreeWidgetItem*> &items);
251 QTreeWidgetItem *headerItem()
const;
252 void setHeaderItem(QTreeWidgetItem *item);
253 void setHeaderLabels(
const QStringList &labels);
254 inline void setHeaderLabel(
const QString &label);
256 QTreeWidgetItem *currentItem()
const;
257 int currentColumn()
const;
258 void setCurrentItem(QTreeWidgetItem *item);
259 void setCurrentItem(QTreeWidgetItem *item,
int column);
260 void setCurrentItem(QTreeWidgetItem *item,
int column, QItemSelectionModel::SelectionFlags command);
262 QTreeWidgetItem *itemAt(
const QPoint &p)
const;
263 inline QTreeWidgetItem *itemAt(
int x,
int y)
const;
264 QRect visualItemRect(
const QTreeWidgetItem *item)
const;
266 int sortColumn()
const;
267 void sortItems(
int column, Qt::SortOrder order);
269 void editItem(QTreeWidgetItem *item,
int column = 0);
270 void openPersistentEditor(QTreeWidgetItem *item,
int column = 0);
271 void closePersistentEditor(QTreeWidgetItem *item,
int column = 0);
272 using QAbstractItemView::isPersistentEditorOpen;
273 bool isPersistentEditorOpen(QTreeWidgetItem *item,
int column = 0)
const;
275 QWidget *itemWidget(QTreeWidgetItem *item,
int column)
const;
276 void setItemWidget(QTreeWidgetItem *item,
int column, QWidget *widget);
277 inline void removeItemWidget(QTreeWidgetItem *item,
int column);
279 QList<QTreeWidgetItem*> selectedItems()
const;
280 QList<QTreeWidgetItem*> findItems(
const QString &text, Qt::MatchFlags flags,
281 int column = 0)
const;
283 QTreeWidgetItem *itemAbove(
const QTreeWidgetItem *item)
const;
284 QTreeWidgetItem *itemBelow(
const QTreeWidgetItem *item)
const;
286 QModelIndex indexFromItem(
const QTreeWidgetItem *item,
int column = 0)
const;
287 QTreeWidgetItem *itemFromIndex(
const QModelIndex &index)
const;
289 void setSelectionModel(QItemSelectionModel *selectionModel) override;
291 Qt::DropActions supportedDragActions()
const;
292 void setSupportedDragActions(Qt::DropActions actions);
295 void scrollToItem(
const QTreeWidgetItem *item,
296 QAbstractItemView::ScrollHint hint = EnsureVisible);
297 void expandItem(
const QTreeWidgetItem *item);
298 void collapseItem(
const QTreeWidgetItem *item);
302 void itemPressed(QTreeWidgetItem *item,
int column);
303 void itemClicked(QTreeWidgetItem *item,
int column);
304 void itemDoubleClicked(QTreeWidgetItem *item,
int column);
305 void itemActivated(QTreeWidgetItem *item,
int column);
306 void itemEntered(QTreeWidgetItem *item,
int column);
307 void itemChanged(QTreeWidgetItem *item,
int column);
308 void itemExpanded(QTreeWidgetItem *item);
309 void itemCollapsed(QTreeWidgetItem *item);
310 void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
311 void itemSelectionChanged();
314 bool event(QEvent *e) override;
315 virtual QStringList mimeTypes()
const;
316 virtual QMimeData *mimeData(
const QList<QTreeWidgetItem *> &items)
const;
317 virtual bool dropMimeData(QTreeWidgetItem *parent,
int index,
318 const QMimeData *data, Qt::DropAction action);
319 virtual Qt::DropActions supportedDropActions()
const;
321#if QT_CONFIG(draganddrop)
322 void dropEvent(QDropEvent *event) override;
325 void setModel(QAbstractItemModel *model) override;
327 Q_DECLARE_PRIVATE(QTreeWidget)
328 Q_DISABLE_COPY(QTreeWidget)