52 friend class QTableWidget;
53 friend class QTableModel;
55 enum ItemType { Type = 0, UserType = 1000 };
56 explicit QTableWidgetItem(
int type = Type);
57 explicit QTableWidgetItem(
const QString &text,
int type = Type);
58 explicit QTableWidgetItem(
const QIcon &icon,
const QString &text,
int type = Type);
59 QTableWidgetItem(
const QTableWidgetItem &other);
60 virtual ~QTableWidgetItem();
62 virtual QTableWidgetItem *clone()
const;
64 inline QTableWidget *tableWidget()
const {
return view; }
66 inline int row()
const;
67 inline int column()
const;
69 void setSelected(
bool select);
70 bool isSelected()
const;
72 inline Qt::ItemFlags flags()
const {
return itemFlags; }
73 void setFlags(Qt::ItemFlags flags);
75 inline QString text()
const
76 {
return data(Qt::DisplayRole).toString(); }
77 inline void setText(
const QString &text);
79 inline QIcon icon()
const
80 {
return qvariant_cast<QIcon>(data(Qt::DecorationRole)); }
81 inline void setIcon(
const QIcon &icon);
83 inline QString statusTip()
const
84 {
return data(Qt::StatusTipRole).toString(); }
85 inline void setStatusTip(
const QString &statusTip);
88 inline QString toolTip()
const
89 {
return data(Qt::ToolTipRole).toString(); }
90 inline void setToolTip(
const QString &toolTip);
93#if QT_CONFIG(whatsthis)
94 inline QString whatsThis()
const
95 {
return data(Qt::WhatsThisRole).toString(); }
96 inline void setWhatsThis(
const QString &whatsThis);
99 inline QFont font()
const
100 {
return qvariant_cast<QFont>(data(Qt::FontRole)); }
101 inline void setFont(
const QFont &font);
103#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
104 inline int textAlignment()
const
105 {
return data(Qt::TextAlignmentRole).toInt(); }
107 inline Qt::Alignment textAlignment()
const
108 {
return qvariant_cast<Qt::Alignment>(data(Qt::TextAlignmentRole)); }
110#if QT_DEPRECATED_SINCE(6
, 4
)
111 QT_DEPRECATED_VERSION_X_6_4(
"Use the overload taking Qt::Alignment")
112 inline void setTextAlignment(
int alignment)
113 { setData(Qt::TextAlignmentRole, alignment); }
114 inline void setTextAlignment(Qt::AlignmentFlag alignment)
115 { setData(Qt::TextAlignmentRole, QVariant::fromValue(Qt::Alignment(alignment))); }
117 inline void setTextAlignment(Qt::Alignment alignment)
118 { setData(Qt::TextAlignmentRole, QVariant::fromValue(alignment)); }
120 inline QBrush background()
const
121 {
return qvariant_cast<QBrush>(data(Qt::BackgroundRole)); }
122 inline void setBackground(
const QBrush &brush)
123 { setData(Qt::BackgroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
125 inline QBrush foreground()
const
126 {
return qvariant_cast<QBrush>(data(Qt::ForegroundRole)); }
127 inline void setForeground(
const QBrush &brush)
128 { setData(Qt::ForegroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); }
130 inline Qt::CheckState checkState()
const
131 {
return qvariant_cast<Qt::CheckState>(data(Qt::CheckStateRole)); }
132 inline void setCheckState(Qt::CheckState state)
133 { setData(Qt::CheckStateRole, state); }
135 inline QSize sizeHint()
const
136 {
return qvariant_cast<QSize>(data(Qt::SizeHintRole)); }
137 inline void setSizeHint(
const QSize &size)
138 { setData(Qt::SizeHintRole, size.isValid() ? QVariant(size) : QVariant()); }
140 virtual QVariant data(
int role)
const;
141 virtual void setData(
int role,
const QVariant &value);
143 virtual bool operator<(
const QTableWidgetItem &other)
const;
145#ifndef QT_NO_DATASTREAM
146 virtual void read(QDataStream &in);
147 virtual void write(QDataStream &out)
const;
149 QTableWidgetItem &operator=(
const QTableWidgetItem &other);
151 inline int type()
const {
return rtti; }
154 QTableModel *tableModel()
const;
158 QList<QWidgetItemData> values;
160 QTableWidgetItemPrivate *d;
161 Qt::ItemFlags itemFlags;
196 Q_PROPERTY(
int rowCount READ rowCount WRITE setRowCount)
197 Q_PROPERTY(
int columnCount READ columnCount WRITE setColumnCount)
198#if QT_CONFIG(draganddrop)
199 Q_PROPERTY(Qt::DropActions supportedDragActions READ supportedDragActions WRITE setSupportedDragActions)
202 friend class QTableModel;
204 explicit QTableWidget(QWidget *parent =
nullptr);
205 QTableWidget(
int rows,
int columns, QWidget *parent =
nullptr);
208 void setRowCount(
int rows);
209 int rowCount()
const;
211 void setColumnCount(
int columns);
212 int columnCount()
const;
214 int row(
const QTableWidgetItem *item)
const;
215 int column(
const QTableWidgetItem *item)
const;
217 QTableWidgetItem *item(
int row,
int column)
const;
218 void setItem(
int row,
int column, QTableWidgetItem *item);
219 QTableWidgetItem *takeItem(
int row,
int column);
220 QList<QTableWidgetItem*> items(
const QMimeData *data)
const;
221 QModelIndex indexFromItem(
const QTableWidgetItem *item)
const;
222 QTableWidgetItem *itemFromIndex(
const QModelIndex &index)
const;
224 QTableWidgetItem *verticalHeaderItem(
int row)
const;
225 void setVerticalHeaderItem(
int row, QTableWidgetItem *item);
226 QTableWidgetItem *takeVerticalHeaderItem(
int row);
228 QTableWidgetItem *horizontalHeaderItem(
int column)
const;
229 void setHorizontalHeaderItem(
int column, QTableWidgetItem *item);
230 QTableWidgetItem *takeHorizontalHeaderItem(
int column);
231 void setVerticalHeaderLabels(
const QStringList &labels);
232 void setHorizontalHeaderLabels(
const QStringList &labels);
234 int currentRow()
const;
235 int currentColumn()
const;
236 QTableWidgetItem *currentItem()
const;
237 void setCurrentItem(QTableWidgetItem *item);
238 void setCurrentItem(QTableWidgetItem *item, QItemSelectionModel::SelectionFlags command);
239 void setCurrentCell(
int row,
int column);
240 void setCurrentCell(
int row,
int column, QItemSelectionModel::SelectionFlags command);
242 void sortItems(
int column, Qt::SortOrder order = Qt::AscendingOrder);
243 void setSortingEnabled(
bool enable);
244 bool isSortingEnabled()
const;
246 void editItem(QTableWidgetItem *item);
247 void openPersistentEditor(QTableWidgetItem *item);
248 void closePersistentEditor(QTableWidgetItem *item);
249 using QAbstractItemView::isPersistentEditorOpen;
250 bool isPersistentEditorOpen(QTableWidgetItem *item)
const;
252 QWidget *cellWidget(
int row,
int column)
const;
253 void setCellWidget(
int row,
int column, QWidget *widget);
254 inline void removeCellWidget(
int row,
int column);
256 void setRangeSelected(
const QTableWidgetSelectionRange &range,
bool select);
258 QList<QTableWidgetSelectionRange> selectedRanges()
const;
259 QList<QTableWidgetItem*> selectedItems()
const;
260 QList<QTableWidgetItem*> findItems(
const QString &text, Qt::MatchFlags flags)
const;
262 int visualRow(
int logicalRow)
const;
263 int visualColumn(
int logicalColumn)
const;
265 QTableWidgetItem *itemAt(
const QPoint &p)
const;
266 inline QTableWidgetItem *itemAt(
int x,
int y)
const;
267 QRect visualItemRect(
const QTableWidgetItem *item)
const;
269 const QTableWidgetItem *itemPrototype()
const;
270 void setItemPrototype(
const QTableWidgetItem *item);
272#if QT_CONFIG(draganddrop)
273 Qt::DropActions supportedDragActions()
const;
274 void setSupportedDragActions(Qt::DropActions actions);
278 void scrollToItem(
const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible);
279 void insertRow(
int row);
280 void insertColumn(
int column);
281 void removeRow(
int row);
282 void removeColumn(
int column);
284 void clearContents();
287 void itemPressed(QTableWidgetItem *item);
288 void itemClicked(QTableWidgetItem *item);
289 void itemDoubleClicked(QTableWidgetItem *item);
291 void itemActivated(QTableWidgetItem *item);
292 void itemEntered(QTableWidgetItem *item);
293 void itemChanged(QTableWidgetItem *item);
295 void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous);
296 void itemSelectionChanged();
298 void cellPressed(
int row,
int column);
299 void cellClicked(
int row,
int column);
300 void cellDoubleClicked(
int row,
int column);
302 void cellActivated(
int row,
int column);
303 void cellEntered(
int row,
int column);
304 void cellChanged(
int row,
int column);
306 void currentCellChanged(
int currentRow,
int currentColumn,
int previousRow,
int previousColumn);
309 bool event(QEvent *e) override;
310 virtual QStringList mimeTypes()
const;
311 virtual QMimeData *mimeData(
const QList<QTableWidgetItem *> &items)
const;
312 virtual bool dropMimeData(
int row,
int column,
const QMimeData *data, Qt::DropAction action);
313 virtual Qt::DropActions supportedDropActions()
const;
316#if QT_CONFIG(draganddrop)
317 void dropEvent(QDropEvent *event) override;
320 void setModel(QAbstractItemModel *model) override;
322 Q_DECLARE_PRIVATE(QTableWidget)
323 Q_DISABLE_COPY(QTableWidget)