Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qitemdelegate.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// Qt-Security score:significant reason:default
4
5#ifndef QITEMDELEGATE_H
6#define QITEMDELEGATE_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qabstractitemdelegate.h>
10#include <QtCore/qstring.h>
11#include <QtGui/qpixmap.h>
12#include <QtCore/qvariant.h>
13
15
16QT_BEGIN_NAMESPACE
17
18class QItemDelegatePrivate;
19class QItemEditorFactory;
20
21class Q_WIDGETS_EXPORT QItemDelegate : public QAbstractItemDelegate
22{
23 Q_OBJECT
24 Q_PROPERTY(bool clipping READ hasClipping WRITE setClipping)
25
26public:
27 explicit QItemDelegate(QObject *parent = nullptr);
28 ~QItemDelegate();
29
30 bool hasClipping() const;
31 void setClipping(bool clip);
32
33 // painting
34 void paint(QPainter *painter,
35 const QStyleOptionViewItem &option,
36 const QModelIndex &index) const override;
37 QSize sizeHint(const QStyleOptionViewItem &option,
38 const QModelIndex &index) const override;
39
40 // editing
41 QWidget *createEditor(QWidget *parent,
42 const QStyleOptionViewItem &option,
43 const QModelIndex &index) const override;
44
45 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
46 void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
47
48 void updateEditorGeometry(QWidget *editor,
49 const QStyleOptionViewItem &option,
50 const QModelIndex &index) const override;
51
52 // editor factory
53 QItemEditorFactory *itemEditorFactory() const;
54 void setItemEditorFactory(QItemEditorFactory *factory);
55
56protected:
57 virtual void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option,
58 const QRect &rect, const QString &text) const;
59 virtual void drawDecoration(QPainter *painter, const QStyleOptionViewItem &option,
60 const QRect &rect, const QPixmap &pixmap) const;
61 virtual void drawFocus(QPainter *painter, const QStyleOptionViewItem &option,
62 const QRect &rect) const;
63 virtual void drawCheck(QPainter *painter, const QStyleOptionViewItem &option,
64 const QRect &rect, Qt::CheckState state) const;
65 void drawBackground(QPainter *painter, const QStyleOptionViewItem &option,
66 const QModelIndex &index) const;
67
68 void doLayout(const QStyleOptionViewItem &option,
69 QRect *checkRect, QRect *iconRect, QRect *textRect, bool hint) const;
70
71 QRect rect(const QStyleOptionViewItem &option, const QModelIndex &index, int role) const;
72
73 bool eventFilter(QObject *object, QEvent *event) override;
74 bool editorEvent(QEvent *event, QAbstractItemModel *model,
75 const QStyleOptionViewItem &option, const QModelIndex &index) override;
76
77 QStyleOptionViewItem setOptions(const QModelIndex &index,
78 const QStyleOptionViewItem &option) const;
79
80 QPixmap decoration(const QStyleOptionViewItem &option, const QVariant &variant) const;
81
82 static QPixmap selectedPixmap(const QPixmap &pixmap, const QPalette &palette, bool enabled);
83
84 QRect doCheck(const QStyleOptionViewItem &option, const QRect &bounding,
85 const QVariant &variant) const;
86 QRect textRectangle(QPainter *painter, const QRect &rect,
87 const QFont &font, const QString &text) const;
88
89private:
90 Q_DECLARE_PRIVATE(QItemDelegate)
91 Q_DISABLE_COPY(QItemDelegate)
92};
93
94QT_END_NAMESPACE
95
96#endif // QITEMDELEGATE_H
const QWidget * widget(const QStyleOptionViewItem &option) const
QItemEditorFactory * f
QSizeF doTextLayout(int lineWidth) const
QRect displayRect(const QModelIndex &index, const QStyleOptionViewItem &option, const QRect &decorationRect, const QRect &checkRect) const
QRect textLayoutBounds(const QStyleOptionViewItem &option, const QRect &decorationRect, const QRect &checkRect) const
The QItemDelegate class provides display and editing facilities for data items from a model.
\inmodule QtCore
friend class QWidget
Definition qpainter.h:431
\inmodule QtCore\reentrant
Definition qpoint.h:231
QT_REQUIRE_CONFIG(itemviews)
static QString qPixmapSerial(quint64 i, bool enabled)
#define DBL_DIG