28 explicit QStandardItem(
const QString &text);
29 QStandardItem(
const QIcon &icon,
const QString &text);
30 explicit QStandardItem(
int rows,
int columns = 1);
31 virtual ~QStandardItem();
33 virtual QVariant data(
int role = Qt::UserRole + 1)
const;
34 virtual void multiData(QModelRoleDataSpan roleDataSpan)
const;
35 virtual void setData(
const QVariant &value,
int role = Qt::UserRole + 1);
38 inline QString text()
const {
39 return qvariant_cast<QString>(data(Qt::DisplayRole));
41 inline void setText(
const QString &text);
43 inline QIcon icon()
const {
44 return qvariant_cast<QIcon>(data(Qt::DecorationRole));
46 inline void setIcon(
const QIcon &icon);
48 inline QString toolTip()
const {
49 return qvariant_cast<QString>(data(Qt::ToolTipRole));
51 inline void setToolTip(
const QString &toolTip);
53#ifndef QT_NO_STATUSTIP
54 inline QString statusTip()
const {
55 return qvariant_cast<QString>(data(Qt::StatusTipRole));
57 inline void setStatusTip(
const QString &statusTip);
60#if QT_CONFIG(whatsthis)
61 inline QString whatsThis()
const {
62 return qvariant_cast<QString>(data(Qt::WhatsThisRole));
64 inline void setWhatsThis(
const QString &whatsThis);
67 inline QSize sizeHint()
const {
68 return qvariant_cast<QSize>(data(Qt::SizeHintRole));
70 inline void setSizeHint(
const QSize &sizeHint);
72 inline QFont font()
const {
73 return qvariant_cast<QFont>(data(Qt::FontRole));
75 inline void setFont(
const QFont &font);
77 inline Qt::Alignment textAlignment()
const {
78 return qvariant_cast<Qt::Alignment>(data(Qt::TextAlignmentRole));
80 inline void setTextAlignment(Qt::Alignment textAlignment);
82 inline QBrush background()
const {
83 return qvariant_cast<QBrush>(data(Qt::BackgroundRole));
85 inline void setBackground(
const QBrush &brush);
87 inline QBrush foreground()
const {
88 return qvariant_cast<QBrush>(data(Qt::ForegroundRole));
90 inline void setForeground(
const QBrush &brush);
92 inline Qt::CheckState checkState()
const {
93 return Qt::CheckState(qvariant_cast<
int>(data(Qt::CheckStateRole)));
95 inline void setCheckState(Qt::CheckState checkState);
97 inline QString accessibleText()
const {
98 return qvariant_cast<QString>(data(Qt::AccessibleTextRole));
100 inline void setAccessibleText(
const QString &accessibleText);
102 inline QString accessibleDescription()
const {
103 return qvariant_cast<QString>(data(Qt::AccessibleDescriptionRole));
105 inline void setAccessibleDescription(
const QString &accessibleDescription);
107 Qt::ItemFlags flags()
const;
108 void setFlags(Qt::ItemFlags flags);
110 inline bool isEnabled()
const {
111 return bool(flags() & Qt::ItemIsEnabled);
113 void setEnabled(
bool enabled);
115 inline bool isEditable()
const {
116 return bool(flags() & Qt::ItemIsEditable);
118 void setEditable(
bool editable);
120 inline bool isSelectable()
const {
121 return bool(flags() & Qt::ItemIsSelectable);
123 void setSelectable(
bool selectable);
125 inline bool isCheckable()
const {
126 return bool(flags() & Qt::ItemIsUserCheckable);
128 void setCheckable(
bool checkable);
130 inline bool isAutoTristate()
const {
131 return bool(flags() & Qt::ItemIsAutoTristate);
133 void setAutoTristate(
bool tristate);
135 inline bool isUserTristate()
const {
136 return bool(flags() & Qt::ItemIsUserTristate);
138 void setUserTristate(
bool tristate);
140#if QT_CONFIG(draganddrop)
141 inline bool isDragEnabled()
const {
142 return bool(flags() & Qt::ItemIsDragEnabled);
144 void setDragEnabled(
bool dragEnabled);
146 inline bool isDropEnabled()
const {
147 return bool(flags() & Qt::ItemIsDropEnabled);
149 void setDropEnabled(
bool dropEnabled);
152 QStandardItem *parent()
const;
155 QModelIndex index()
const;
156 QStandardItemModel *model()
const;
158 int rowCount()
const;
159 void setRowCount(
int rows);
160 int columnCount()
const;
161 void setColumnCount(
int columns);
163 bool hasChildren()
const;
164 QStandardItem *child(
int row,
int column = 0)
const;
165 void setChild(
int row,
int column, QStandardItem *item);
166 inline void setChild(
int row, QStandardItem *item);
168 void insertRow(
int row,
const QList<QStandardItem*> &items);
169 void insertColumn(
int column,
const QList<QStandardItem*> &items);
170 void insertRows(
int row,
const QList<QStandardItem*> &items);
171 void insertRows(
int row,
int count);
172 void insertColumns(
int column,
int count);
174 void removeRow(
int row);
175 void removeColumn(
int column);
176 void removeRows(
int row,
int count);
177 void removeColumns(
int column,
int count);
179 inline void appendRow(
const QList<QStandardItem*> &items);
180 inline void appendRows(
const QList<QStandardItem*> &items);
181 inline void appendColumn(
const QList<QStandardItem*> &items);
182 inline void insertRow(
int row, QStandardItem *item);
183 inline void appendRow(QStandardItem *item);
185 QStandardItem *takeChild(
int row,
int column = 0);
186 QList<QStandardItem*> takeRow(
int row);
187 QList<QStandardItem*> takeColumn(
int column);
189 void sortChildren(
int column, Qt::SortOrder order = Qt::AscendingOrder);
191 virtual QStandardItem *clone()
const;
193 enum ItemType { Type = 0, UserType = 1000 };
194 virtual int type()
const;
196#ifndef QT_NO_DATASTREAM
197 virtual void read(QDataStream &in);
198 virtual void write(QDataStream &out)
const;
200 virtual bool operator<(
const QStandardItem &other)
const;
203 QStandardItem(
const QStandardItem &other);
204 QStandardItem(QStandardItemPrivate &dd);
205 QStandardItem &operator=(
const QStandardItem &other);
206 QScopedPointer<QStandardItemPrivate> d_ptr;
208 void emitDataChanged();
211 Q_DECLARE_PRIVATE(QStandardItem)
212 friend class QStandardItemModelPrivate;
213 friend class QStandardItemModel;
282 Q_PROPERTY(
int sortRole READ sortRole WRITE setSortRole BINDABLE bindableSortRole)
285 explicit QStandardItemModel(QObject *parent =
nullptr);
286 QStandardItemModel(
int rows,
int columns, QObject *parent =
nullptr);
287 ~QStandardItemModel();
289 void setItemRoleNames(
const QHash<
int,QByteArray> &roleNames);
290 QHash<
int, QByteArray> roleNames()
const override;
292 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex())
const override;
293 QModelIndex parent(
const QModelIndex &child)
const override;
295 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
296 int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
297 bool hasChildren(
const QModelIndex &parent = QModelIndex())
const override;
299 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
300 void multiData(
const QModelIndex &index, QModelRoleDataSpan roleDataSpan)
const override;
301 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole) override;
302 bool clearItemData(
const QModelIndex &index) override;
304 QVariant headerData(
int section, Qt::Orientation orientation,
305 int role = Qt::DisplayRole)
const override;
306 bool setHeaderData(
int section, Qt::Orientation orientation,
const QVariant &value,
307 int role = Qt::EditRole) override;
309 bool insertRows(
int row,
int count,
const QModelIndex &parent = QModelIndex()) override;
310 bool insertColumns(
int column,
int count,
const QModelIndex &parent = QModelIndex()) override;
311 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex()) override;
312 bool removeColumns(
int column,
int count,
const QModelIndex &parent = QModelIndex()) override;
314 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
315 Qt::DropActions supportedDropActions()
const override;
317 QMap<
int, QVariant> itemData(
const QModelIndex &index)
const override;
318 bool setItemData(
const QModelIndex &index,
const QMap<
int, QVariant> &roles) override;
322 using QObject::parent;
324 void sort(
int column, Qt::SortOrder order = Qt::AscendingOrder) override;
326 QStandardItem *itemFromIndex(
const QModelIndex &index)
const;
327 QModelIndex indexFromItem(
const QStandardItem *item)
const;
329 QStandardItem *item(
int row,
int column = 0)
const;
330 void setItem(
int row,
int column, QStandardItem *item);
331 inline void setItem(
int row, QStandardItem *item);
332 QStandardItem *invisibleRootItem()
const;
334 QStandardItem *horizontalHeaderItem(
int column)
const;
335 void setHorizontalHeaderItem(
int column, QStandardItem *item);
336 QStandardItem *verticalHeaderItem(
int row)
const;
337 void setVerticalHeaderItem(
int row, QStandardItem *item);
339 void setHorizontalHeaderLabels(
const QStringList &labels);
340 void setVerticalHeaderLabels(
const QStringList &labels);
342 void setRowCount(
int rows);
343 void setColumnCount(
int columns);
345 void appendRow(
const QList<QStandardItem*> &items);
346 void appendColumn(
const QList<QStandardItem*> &items);
347 inline void appendRow(QStandardItem *item);
349 void insertRow(
int row,
const QList<QStandardItem*> &items);
350 void insertColumn(
int column,
const QList<QStandardItem*> &items);
351 inline void insertRow(
int row, QStandardItem *item);
353 inline bool insertRow(
int row,
const QModelIndex &parent = QModelIndex());
354 inline bool insertColumn(
int column,
const QModelIndex &parent = QModelIndex());
356 QStandardItem *takeItem(
int row,
int column = 0);
357 QList<QStandardItem*> takeRow(
int row);
358 QList<QStandardItem*> takeColumn(
int column);
360 QStandardItem *takeHorizontalHeaderItem(
int column);
361 QStandardItem *takeVerticalHeaderItem(
int row);
363 const QStandardItem *itemPrototype()
const;
364 void setItemPrototype(
const QStandardItem *item);
366 QList<QStandardItem*> findItems(
const QString &text,
367 Qt::MatchFlags flags = Qt::MatchExactly,
368 int column = 0)
const;
370 int sortRole()
const;
371 void setSortRole(
int role);
372 QBindable<
int> bindableSortRole();
374 QStringList mimeTypes()
const override;
375 QMimeData *mimeData(
const QModelIndexList &indexes)
const override;
376 bool dropMimeData (
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent) override;
379 void itemChanged(QStandardItem *item);
382 QStandardItemModel(QStandardItemModelPrivate &dd, QObject *parent =
nullptr);
385 friend class QStandardItemPrivate;
386 friend class QStandardItem;
387 Q_DISABLE_COPY(QStandardItemModel)
388 Q_DECLARE_PRIVATE(QStandardItemModel)
390 Q_PRIVATE_SLOT(d_func(),
void _q_emitItemChanged(
const QModelIndex &topLeft,
391 const QModelIndex &bottomRight))