25 friend class QListModel;
26 friend class QListWidget;
28 enum ItemType { Type = 0, UserType = 1000 };
29 explicit QListWidgetItem(QListWidget *listview =
nullptr,
int type = Type);
30 explicit QListWidgetItem(
const QString &text, QListWidget *listview =
nullptr,
int type = Type);
31 explicit QListWidgetItem(
const QIcon &icon,
const QString &text,
32 QListWidget *listview =
nullptr,
int type = Type);
33 QListWidgetItem(
const QListWidgetItem &other);
34 virtual ~QListWidgetItem();
36 virtual QListWidgetItem *clone()
const;
38 inline QListWidget *listWidget()
const {
return view; }
40 void setSelected(
bool select);
41 bool isSelected()
const;
43 inline void setHidden(
bool hide);
44 inline bool isHidden()
const;
46 inline Qt::ItemFlags flags()
const {
return itemFlags; }
47 void setFlags(Qt::ItemFlags flags);
49 inline QString text()
const
50 {
return data(Qt::DisplayRole).toString(); }
51 inline void setText(
const QString &text);
53 inline QIcon icon()
const
54 {
return qvariant_cast<QIcon>(data(Qt::DecorationRole)); }
55 inline void setIcon(
const QIcon &icon);
57 inline QString statusTip()
const
58 {
return data(Qt::StatusTipRole).toString(); }
59 inline void setStatusTip(
const QString &statusTip);
62 inline QString toolTip()
const
63 {
return data(Qt::ToolTipRole).toString(); }
64 inline void setToolTip(
const QString &toolTip);
67#if QT_CONFIG(whatsthis)
68 inline QString whatsThis()
const
69 {
return data(Qt::WhatsThisRole).toString(); }
70 inline void setWhatsThis(
const QString &whatsThis);
73 inline QFont font()
const
74 {
return qvariant_cast<QFont>(data(Qt::FontRole)); }
75 inline void setFont(
const QFont &font);
77#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
78 inline int textAlignment()
const
79 {
return data(Qt::TextAlignmentRole).toInt(); }
81 inline Qt::Alignment textAlignment()
const
82 {
return qvariant_cast<Qt::Alignment>(data(Qt::TextAlignmentRole)); }
84#if QT_DEPRECATED_SINCE(6
, 4
)
85 QT_DEPRECATED_VERSION_X_6_4(
"Use the overload taking Qt::Alignment")
86 inline void setTextAlignment(
int alignment)
87 { setData(Qt::TextAlignmentRole, alignment); }
88 inline void setTextAlignment(Qt::AlignmentFlag alignment)
89 { setData(Qt::TextAlignmentRole, QVariant::fromValue(Qt::Alignment(alignment))); }
91 inline void setTextAlignment(Qt::Alignment alignment)
92 { setData(Qt::TextAlignmentRole, QVariant::fromValue(alignment)); }
94 inline QBrush background()
const
95 {
return qvariant_cast<QBrush>(data(Qt::BackgroundRole)); }
96 inline void setBackground(
const QBrush &brush)
97 { setData(Qt::BackgroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
99 inline QBrush foreground()
const
100 {
return qvariant_cast<QBrush>(data(Qt::ForegroundRole)); }
101 inline void setForeground(
const QBrush &brush)
102 { setData(Qt::ForegroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
104 inline Qt::CheckState checkState()
const
105 {
return qvariant_cast<Qt::CheckState>(data(Qt::CheckStateRole)); }
106 inline void setCheckState(Qt::CheckState state)
107 { setData(Qt::CheckStateRole,
static_cast<
int>(state)); }
109 inline QSize sizeHint()
const
110 {
return qvariant_cast<QSize>(data(Qt::SizeHintRole)); }
111 inline void setSizeHint(
const QSize &size)
112 { setData(Qt::SizeHintRole, size.isValid() ? QVariant(size) : QVariant()); }
114 virtual QVariant data(
int role)
const;
115 virtual void setData(
int role,
const QVariant &value);
117 virtual bool operator<(
const QListWidgetItem &other)
const;
119#ifndef QT_NO_DATASTREAM
120 virtual void read(QDataStream &in);
121 virtual void write(QDataStream &out)
const;
123 QListWidgetItem &operator=(
const QListWidgetItem &other);
125 inline int type()
const {
return rtti; }
128 QListModel *listModel()
const;
131 QListWidgetItemPrivate *d;
132 Qt::ItemFlags itemFlags;
167 Q_PROPERTY(
int count READ count)
168 Q_PROPERTY(
int currentRow READ currentRow WRITE setCurrentRow NOTIFY currentRowChanged
170 Q_PROPERTY(
bool sortingEnabled READ isSortingEnabled WRITE setSortingEnabled)
171#if QT_CONFIG(draganddrop)
172 Q_PROPERTY(Qt::DropActions supportedDragActions READ supportedDragActions WRITE setSupportedDragActions)
175 friend class QListWidgetItem;
176 friend class QListModel;
178 explicit QListWidget(QWidget *parent =
nullptr);
181 void setSelectionModel(QItemSelectionModel *selectionModel) override;
183 QListWidgetItem *item(
int row)
const;
184 int row(
const QListWidgetItem *item)
const;
185 void insertItem(
int row, QListWidgetItem *item);
186 void insertItem(
int row,
const QString &label);
187 void insertItems(
int row,
const QStringList &labels);
188 inline void addItem(
const QString &label) { insertItem(count(), label); }
189 inline void addItem(QListWidgetItem *item);
190 inline void addItems(
const QStringList &labels) { insertItems(count(), labels); }
191 QListWidgetItem *takeItem(
int row);
194 QListWidgetItem *currentItem()
const;
195 void setCurrentItem(QListWidgetItem *item);
196 void setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command);
198 int currentRow()
const;
199 void setCurrentRow(
int row);
200 void setCurrentRow(
int row, QItemSelectionModel::SelectionFlags command);
202 QListWidgetItem *itemAt(
const QPoint &p)
const;
203 inline QListWidgetItem *itemAt(
int x,
int y)
const;
204 QRect visualItemRect(
const QListWidgetItem *item)
const;
206 void sortItems(Qt::SortOrder order = Qt::AscendingOrder);
207 void setSortingEnabled(
bool enable);
208 bool isSortingEnabled()
const;
210 void editItem(QListWidgetItem *item);
211 void openPersistentEditor(QListWidgetItem *item);
212 void closePersistentEditor(QListWidgetItem *item);
213 using QAbstractItemView::isPersistentEditorOpen;
214 bool isPersistentEditorOpen(QListWidgetItem *item)
const;
216 QWidget *itemWidget(QListWidgetItem *item)
const;
217 void setItemWidget(QListWidgetItem *item, QWidget *widget);
218 inline void removeItemWidget(QListWidgetItem *item);
220 QList<QListWidgetItem*> selectedItems()
const;
221 QList<QListWidgetItem*> findItems(
const QString &text, Qt::MatchFlags flags)
const;
223 QList<QListWidgetItem*> items(
const QMimeData *data)
const;
225 QModelIndex indexFromItem(
const QListWidgetItem *item)
const;
226 QListWidgetItem *itemFromIndex(
const QModelIndex &index)
const;
228#if QT_CONFIG(draganddrop)
229 void setSupportedDragActions(Qt::DropActions actions);
230 Qt::DropActions supportedDragActions()
const;
233#if QT_CONFIG(draganddrop)
234 void dropEvent(QDropEvent *event) override;
237 void scrollToItem(
const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible);
241 void itemPressed(QListWidgetItem *item);
242 void itemClicked(QListWidgetItem *item);
243 void itemDoubleClicked(QListWidgetItem *item);
244 void itemActivated(QListWidgetItem *item);
245 void itemEntered(QListWidgetItem *item);
246 void itemChanged(QListWidgetItem *item);
248 void currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
249 void currentTextChanged(
const QString ¤tText);
250 void currentRowChanged(
int currentRow);
252 void itemSelectionChanged();
255 bool event(QEvent *e) override;
256 virtual QStringList mimeTypes()
const;
257 virtual QMimeData *mimeData(
const QList<QListWidgetItem *> &items)
const;
258#if QT_CONFIG(draganddrop)
259 virtual bool dropMimeData(
int index,
const QMimeData *data, Qt::DropAction action);
260 virtual Qt::DropActions supportedDropActions()
const;
264 void setModel(QAbstractItemModel *model) override;
265 Qt::SortOrder sortOrder()
const;
267 Q_DECLARE_PRIVATE(QListWidget)
268 Q_DISABLE_COPY(QListWidget)