Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qtablewidget.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QTABLEWIDGET_H
5#define QTABLEWIDGET_H
6
7#include <QtWidgets/qtableview.h>
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtCore/qlist.h>
10#include <QtCore/qvariant.h>
11
12QT_REQUIRE_CONFIG(tablewidget);
13
15
17{
18public:
21 : m_top(top), m_left(left), m_bottom(bottom), m_right(right)
22 {}
23
24 friend bool operator==(const QTableWidgetSelectionRange &lhs,
25 const QTableWidgetSelectionRange &rhs) noexcept
26 {
27 return lhs.m_top == rhs.m_top && lhs.m_left == rhs.m_left && lhs.m_bottom == rhs.m_bottom
28 && lhs.m_right == rhs.m_right;
29 }
30 friend bool operator!=(const QTableWidgetSelectionRange &lhs,
31 const QTableWidgetSelectionRange &rhs) noexcept
32 { return !(lhs == rhs); }
33
34 inline int topRow() const { return m_top; }
35 inline int bottomRow() const { return m_bottom; }
36 inline int leftColumn() const { return m_left; }
37 inline int rightColumn() const { return m_right; }
38 inline int rowCount() const { return m_bottom - m_top + 1; }
39 inline int columnCount() const { return m_right - m_left + 1; }
40private:
41 int m_top = -1, m_left = -1, m_bottom = -2, m_right = -2;
42};
43
44class QTableWidget;
45class QTableModel;
46class QWidgetItemData;
48
49class Q_WIDGETS_EXPORT QTableWidgetItem
50{
51 friend class QTableWidget;
52 friend class QTableModel;
53public:
54 enum ItemType { Type = 0, UserType = 1000 };
55 explicit QTableWidgetItem(int type = Type);
56 explicit QTableWidgetItem(const QString &text, int type = Type);
57 explicit QTableWidgetItem(const QIcon &icon, const QString &text, int type = Type);
59 virtual ~QTableWidgetItem();
60
61 virtual QTableWidgetItem *clone() const;
62
63 inline QTableWidget *tableWidget() const { return view; }
64
65 inline int row() const;
66 inline int column() const;
67
68 void setSelected(bool select);
69 bool isSelected() const;
70
71 inline Qt::ItemFlags flags() const { return itemFlags; }
72 void setFlags(Qt::ItemFlags flags);
73
74 inline QString text() const
75 { return data(Qt::DisplayRole).toString(); }
76 inline void setText(const QString &text);
77
78 inline QIcon icon() const
79 { return qvariant_cast<QIcon>(data(Qt::DecorationRole)); }
80 inline void setIcon(const QIcon &icon);
81
82 inline QString statusTip() const
83 { return data(Qt::StatusTipRole).toString(); }
84 inline void setStatusTip(const QString &statusTip);
85
86#if QT_CONFIG(tooltip)
87 inline QString toolTip() const
88 { return data(Qt::ToolTipRole).toString(); }
89 inline void setToolTip(const QString &toolTip);
90#endif
91
92#if QT_CONFIG(whatsthis)
93 inline QString whatsThis() const
94 { return data(Qt::WhatsThisRole).toString(); }
95 inline void setWhatsThis(const QString &whatsThis);
96#endif
97
98 inline QFont font() const
99 { return qvariant_cast<QFont>(data(Qt::FontRole)); }
100 inline void setFont(const QFont &font);
101
102#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
103 inline int textAlignment() const
104 { return data(Qt::TextAlignmentRole).toInt(); }
105#else
106 inline Qt::Alignment textAlignment() const
107 { return qvariant_cast<Qt::Alignment>(data(Qt::TextAlignmentRole)); }
108#endif
109#if QT_DEPRECATED_SINCE(6, 4)
110 QT_DEPRECATED_VERSION_X_6_4("Use the overload taking Qt::Alignment")
111 inline void setTextAlignment(int alignment)
115#endif
118
119 inline QBrush background() const
120 { return qvariant_cast<QBrush>(data(Qt::BackgroundRole)); }
121 inline void setBackground(const QBrush &brush)
123
124 inline QBrush foreground() const
125 { return qvariant_cast<QBrush>(data(Qt::ForegroundRole)); }
126 inline void setForeground(const QBrush &brush)
128
130 { return qvariant_cast<Qt::CheckState>(data(Qt::CheckStateRole)); }
133
134 inline QSize sizeHint() const
135 { return qvariant_cast<QSize>(data(Qt::SizeHintRole)); }
136 inline void setSizeHint(const QSize &size)
137 { setData(Qt::SizeHintRole, size.isValid() ? QVariant(size) : QVariant()); }
138
139 virtual QVariant data(int role) const;
140 virtual void setData(int role, const QVariant &value);
141
142 virtual bool operator<(const QTableWidgetItem &other) const;
143
144#ifndef QT_NO_DATASTREAM
145 virtual void read(QDataStream &in);
146 virtual void write(QDataStream &out) const;
147#endif
148 QTableWidgetItem &operator=(const QTableWidgetItem &other);
149
150 inline int type() const { return rtti; }
151
152private:
153 QTableModel *tableModel() const;
154
155private:
156 int rtti;
157 QList<QWidgetItemData> values;
160 Qt::ItemFlags itemFlags;
161};
162
163inline void QTableWidgetItem::setText(const QString &atext)
164{ setData(Qt::DisplayRole, atext); }
165
166inline void QTableWidgetItem::setIcon(const QIcon &aicon)
167{ setData(Qt::DecorationRole, aicon); }
168
169inline void QTableWidgetItem::setStatusTip(const QString &astatusTip)
170{ setData(Qt::StatusTipRole, astatusTip); }
171
172#if QT_CONFIG(tooltip)
173inline void QTableWidgetItem::setToolTip(const QString &atoolTip)
174{ setData(Qt::ToolTipRole, atoolTip); }
175#endif
176
177#if QT_CONFIG(whatsthis)
178inline void QTableWidgetItem::setWhatsThis(const QString &awhatsThis)
179{ setData(Qt::WhatsThisRole, awhatsThis); }
180#endif
181
182inline void QTableWidgetItem::setFont(const QFont &afont)
183{ setData(Qt::FontRole, afont); }
184
185#ifndef QT_NO_DATASTREAM
188#endif
189
191
192class Q_WIDGETS_EXPORT QTableWidget : public QTableView
193{
195 Q_PROPERTY(int rowCount READ rowCount WRITE setRowCount)
196 Q_PROPERTY(int columnCount READ columnCount WRITE setColumnCount)
197
198 friend class QTableModel;
199public:
200 explicit QTableWidget(QWidget *parent = nullptr);
201 QTableWidget(int rows, int columns, QWidget *parent = nullptr);
202 ~QTableWidget();
203
204 void setRowCount(int rows);
205 int rowCount() const;
206
207 void setColumnCount(int columns);
208 int columnCount() const;
209
210 int row(const QTableWidgetItem *item) const;
211 int column(const QTableWidgetItem *item) const;
212
213 QTableWidgetItem *item(int row, int column) const;
214 void setItem(int row, int column, QTableWidgetItem *item);
215 QTableWidgetItem *takeItem(int row, int column);
216 QList<QTableWidgetItem*> items(const QMimeData *data) const;
217 QModelIndex indexFromItem(const QTableWidgetItem *item) const;
218 QTableWidgetItem *itemFromIndex(const QModelIndex &index) const;
219
220 QTableWidgetItem *verticalHeaderItem(int row) const;
221 void setVerticalHeaderItem(int row, QTableWidgetItem *item);
222 QTableWidgetItem *takeVerticalHeaderItem(int row);
223
224 QTableWidgetItem *horizontalHeaderItem(int column) const;
225 void setHorizontalHeaderItem(int column, QTableWidgetItem *item);
226 QTableWidgetItem *takeHorizontalHeaderItem(int column);
227 void setVerticalHeaderLabels(const QStringList &labels);
228 void setHorizontalHeaderLabels(const QStringList &labels);
229
230 int currentRow() const;
231 int currentColumn() const;
232 QTableWidgetItem *currentItem() const;
233 void setCurrentItem(QTableWidgetItem *item);
234 void setCurrentItem(QTableWidgetItem *item, QItemSelectionModel::SelectionFlags command);
235 void setCurrentCell(int row, int column);
236 void setCurrentCell(int row, int column, QItemSelectionModel::SelectionFlags command);
237
238 void sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder);
239 void setSortingEnabled(bool enable);
240 bool isSortingEnabled() const;
241
242 void editItem(QTableWidgetItem *item);
243 void openPersistentEditor(QTableWidgetItem *item);
244 void closePersistentEditor(QTableWidgetItem *item);
245 using QAbstractItemView::isPersistentEditorOpen;
246 bool isPersistentEditorOpen(QTableWidgetItem *item) const;
247
248 QWidget *cellWidget(int row, int column) const;
249 void setCellWidget(int row, int column, QWidget *widget);
250 inline void removeCellWidget(int row, int column);
251
252 void setRangeSelected(const QTableWidgetSelectionRange &range, bool select);
253
254 QList<QTableWidgetSelectionRange> selectedRanges() const;
255 QList<QTableWidgetItem*> selectedItems() const;
256 QList<QTableWidgetItem*> findItems(const QString &text, Qt::MatchFlags flags) const;
257
258 int visualRow(int logicalRow) const;
259 int visualColumn(int logicalColumn) const;
260
261 QTableWidgetItem *itemAt(const QPoint &p) const;
262 inline QTableWidgetItem *itemAt(int x, int y) const;
263 QRect visualItemRect(const QTableWidgetItem *item) const;
264
265 const QTableWidgetItem *itemPrototype() const;
266 void setItemPrototype(const QTableWidgetItem *item);
267
268public Q_SLOTS:
269 void scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible);
270 void insertRow(int row);
271 void insertColumn(int column);
272 void removeRow(int row);
273 void removeColumn(int column);
274 void clear();
275 void clearContents();
276
278 void itemPressed(QTableWidgetItem *item);
279 void itemClicked(QTableWidgetItem *item);
280 void itemDoubleClicked(QTableWidgetItem *item);
281
282 void itemActivated(QTableWidgetItem *item);
283 void itemEntered(QTableWidgetItem *item);
284 void itemChanged(QTableWidgetItem *item);
285
286 void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous);
287 void itemSelectionChanged();
288
289 void cellPressed(int row, int column);
290 void cellClicked(int row, int column);
291 void cellDoubleClicked(int row, int column);
292
293 void cellActivated(int row, int column);
294 void cellEntered(int row, int column);
295 void cellChanged(int row, int column);
296
297 void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn);
298
299protected:
300 bool event(QEvent *e) override;
301 virtual QStringList mimeTypes() const;
302 virtual QMimeData *mimeData(const QList<QTableWidgetItem *> &items) const;
303 virtual bool dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action);
304 virtual Qt::DropActions supportedDropActions() const;
305
306protected:
307#if QT_CONFIG(draganddrop)
308 void dropEvent(QDropEvent *event) override;
309#endif
310private:
311 void setModel(QAbstractItemModel *model) override;
312
313 Q_DECLARE_PRIVATE(QTableWidget)
314 Q_DISABLE_COPY(QTableWidget)
315};
316
317inline void QTableWidget::removeCellWidget(int arow, int acolumn)
318{ setCellWidget(arow, acolumn, nullptr); }
319
320inline QTableWidgetItem *QTableWidget::itemAt(int ax, int ay) const
321{ return itemAt(QPoint(ax, ay)); }
322
323inline int QTableWidgetItem::row() const
324{ return (view ? view->row(this) : -1); }
325
326inline int QTableWidgetItem::column() const
327{ return (view ? view->column(this) : -1); }
328
330
331#endif // QTABLEWIDGET_H
The QAbstractItemView class provides the basic functionality for item view classes.
ScrollHint
\value EnsureVisible Scroll to ensure that the item is visible.
\inmodule QtGui
Definition qbrush.h:30
\inmodule QtCore\reentrant
Definition qdatastream.h:46
\inmodule QtCore
Definition qcoreevent.h:45
\reentrant
Definition qfont.h:22
The QIcon class provides scalable icons in different modes and states.
Definition qicon.h:20
Definition qlist.h:75
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtCore
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore
Definition qsize.h:25
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
The QTableView class provides a default model/view implementation of a table view.
Definition qtableview.h:18
The QTableWidgetItem class provides an item for use with the QTableWidget class.
void setBackground(const QBrush &brush)
int column() const
void setCheckState(Qt::CheckState state)
Sets the check state of the table item to be state.
QString statusTip() const
Returns the item's status tip.
ItemType
This enum describes the types that are used to describe table widget items.
void setTextAlignment(Qt::Alignment alignment)
\obsolete [6.4] Use the overload that takes a Qt::Alignment argument.
QString text() const
Returns the item's text.
QIcon icon() const
Returns the item's icon.
Qt::CheckState checkState() const
Returns the checked state of the table item.
QSize sizeHint() const
QBrush background() const
Qt::ItemFlags flags() const
Returns the flags used to describe the item.
void setText(const QString &text)
Sets the item's text to the text specified.
void setStatusTip(const QString &statusTip)
Sets the status tip for the table item to the text specified by statusTip.
int row() const
void setForeground(const QBrush &brush)
virtual void setData(int role, const QVariant &value)
Sets the item's data for the given role to the specified value.
Qt::Alignment textAlignment() const
int type() const
Returns the type passed to the QTableWidgetItem constructor.
QBrush foreground() const
void setFont(const QFont &font)
Sets the font used to display the item's text to the given font.
void setIcon(const QIcon &icon)
Sets the item's icon to the icon specified.
void setSizeHint(const QSize &size)
QFont font() const
Returns the font used to render the item's text.
QTableWidget * tableWidget() const
Returns the table widget that contains the item.
The QTableWidgetSelectionRange class provides a way to interact with selection in a model without usi...
int topRow() const
Returns the top row of the range.
QTableWidgetSelectionRange(int top, int left, int bottom, int right)
Constructs the table selection range from the given top, left, bottom and right table rows and column...
QTableWidgetSelectionRange()=default
Constructs an empty table selection range, i.e.
int bottomRow() const
Returns the bottom row of the range.
friend bool operator==(const QTableWidgetSelectionRange &lhs, const QTableWidgetSelectionRange &rhs) noexcept
friend bool operator!=(const QTableWidgetSelectionRange &lhs, const QTableWidgetSelectionRange &rhs) noexcept
int rightColumn() const
Returns the right column of the range.
int leftColumn() const
Returns the left column of the range.
The QTableWidget class provides an item-based table view with a default model.
int row(const QTableWidgetItem *item) const
Returns the row for the item.
QTableWidgetItem * itemAt(const QPoint &p) const
Returns a pointer to the item at the given point, or returns \nullptr if point is not covered by an i...
int column(const QTableWidgetItem *item) const
Returns the column for the item.
void setCellWidget(int row, int column, QWidget *widget)
void removeCellWidget(int row, int column)
\inmodule QtCore
Definition qvariant.h:65
static auto fromValue(T &&value) noexcept(std::is_nothrow_copy_constructible_v< T > &&Private::CanUseInternalSpace< T >) -> std::enable_if_t< std::conjunction_v< std::is_copy_constructible< T >, std::is_destructible< T > >, QVariant >
Definition qvariant.h:536
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
QOpenGLWidget * widget
[1]
b clear()
QString text
uint alignment
else opt state
[0]
Combined button and popup list for selecting options.
Definition qcompare.h:63
CheckState
AlignmentFlag
Definition qnamespace.h:143
@ WhatsThisRole
@ FontRole
@ TextAlignmentRole
@ ForegroundRole
@ DecorationRole
@ BackgroundRole
@ CheckStateRole
@ StatusTipRole
@ ToolTipRole
@ DisplayRole
@ SizeHintRole
@ NoBrush
Definition brush.cpp:5
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum GLsizei GLsizei GLint * values
[15]
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLuint index
[2]
GLdouble GLdouble GLdouble GLdouble top
GLdouble GLdouble right
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLsizei range
GLint left
GLenum type
GLint GLint bottom
GLbitfield flags
GLboolean enable
GLint y
GLenum GLenum GLsizei void GLsizei void * column
struct _cl_event * event
GLuint in
GLenum GLenum GLsizei void * row
GLfloat GLfloat p
[1]
GLfixed GLfixed GLint GLint order
decorationRoleName toolTipRoleName whatsThisRoleName setTextAlignment
decorationRoleName toolTipRoleName setWhatsThis
decorationRoleName setToolTip
static bool operator<(const QSettingsIniKey &k1, const QSettingsIniKey &k2)
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
Q_WIDGETS_EXPORT QDataStream & operator>>(QDataStream &in, QTableWidgetItem &item)
Q_WIDGETS_EXPORT QDataStream & operator<<(QDataStream &out, const QTableWidgetItem &item)
#define QT_REQUIRE_CONFIG(feature)
#define QT_DEPRECATED_VERSION_X_6_4(text)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_SLOTS
#define Q_SIGNALS
ReturnedValue read(const char *data)
#define explicit
view setModel(model)
[17] //! [18]
QSqlQueryModel * model
[16]
gzip write("uncompressed data")
QTextStream out(stdout)
[7]
mimeData setData("text/csv", csvData)
QMimeData * mimeData
QSharedPointer< T > other(t)
[5]
QGraphicsItem * item
selection select(topLeft, bottomRight)
setCellWidget(row, column, new QLineEdit)
[0]
QList< QTreeWidgetItem * > items
treeWidget setColumnCount(1)
myAction setIcon(SomeIcon)
flay removeRow(2)
flay insertRow(2, "User:", le)
insertRed setText("insert red text")
QQuickView * view
[0]
Definition moc.h:23