File indexing completed on 2026-09-27 09:24:18
0001
0002
0003
0004
0005 #ifndef QITEMDELEGATE_H
0006 #define QITEMDELEGATE_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qabstractitemdelegate.h>
0010 #include <QtCore/qstring.h>
0011 #include <QtGui/qpixmap.h>
0012 #include <QtCore/qvariant.h>
0013
0014 QT_REQUIRE_CONFIG(itemviews);
0015
0016 QT_BEGIN_NAMESPACE
0017
0018 class QItemDelegatePrivate;
0019 class QItemEditorFactory;
0020
0021 class Q_WIDGETS_EXPORT QItemDelegate : public QAbstractItemDelegate
0022 {
0023 Q_OBJECT
0024 Q_PROPERTY(bool clipping READ hasClipping WRITE setClipping)
0025
0026 public:
0027 explicit QItemDelegate(QObject *parent = nullptr);
0028 ~QItemDelegate();
0029
0030 bool hasClipping() const;
0031 void setClipping(bool clip);
0032
0033
0034 void paint(QPainter *painter,
0035 const QStyleOptionViewItem &option,
0036 const QModelIndex &index) const override;
0037 QSize sizeHint(const QStyleOptionViewItem &option,
0038 const QModelIndex &index) const override;
0039
0040
0041 QWidget *createEditor(QWidget *parent,
0042 const QStyleOptionViewItem &option,
0043 const QModelIndex &index) const override;
0044
0045 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
0046 void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
0047
0048 void updateEditorGeometry(QWidget *editor,
0049 const QStyleOptionViewItem &option,
0050 const QModelIndex &index) const override;
0051
0052
0053 QItemEditorFactory *itemEditorFactory() const;
0054 void setItemEditorFactory(QItemEditorFactory *factory);
0055
0056 protected:
0057 virtual void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option,
0058 const QRect &rect, const QString &text) const;
0059 virtual void drawDecoration(QPainter *painter, const QStyleOptionViewItem &option,
0060 const QRect &rect, const QPixmap &pixmap) const;
0061 virtual void drawFocus(QPainter *painter, const QStyleOptionViewItem &option,
0062 const QRect &rect) const;
0063 virtual void drawCheck(QPainter *painter, const QStyleOptionViewItem &option,
0064 const QRect &rect, Qt::CheckState state) const;
0065 void drawBackground(QPainter *painter, const QStyleOptionViewItem &option,
0066 const QModelIndex &index) const;
0067
0068 void doLayout(const QStyleOptionViewItem &option,
0069 QRect *checkRect, QRect *iconRect, QRect *textRect, bool hint) const;
0070
0071 QRect rect(const QStyleOptionViewItem &option, const QModelIndex &index, int role) const;
0072
0073 bool eventFilter(QObject *object, QEvent *event) override;
0074 bool editorEvent(QEvent *event, QAbstractItemModel *model,
0075 const QStyleOptionViewItem &option, const QModelIndex &index) override;
0076
0077 QStyleOptionViewItem setOptions(const QModelIndex &index,
0078 const QStyleOptionViewItem &option) const;
0079
0080 QPixmap decoration(const QStyleOptionViewItem &option, const QVariant &variant) const;
0081
0082 static QPixmap selectedPixmap(const QPixmap &pixmap, const QPalette &palette, bool enabled);
0083
0084 QRect doCheck(const QStyleOptionViewItem &option, const QRect &bounding,
0085 const QVariant &variant) const;
0086 QRect textRectangle(QPainter *painter, const QRect &rect,
0087 const QFont &font, const QString &text) const;
0088
0089 private:
0090 Q_DECLARE_PRIVATE(QItemDelegate)
0091 Q_DISABLE_COPY(QItemDelegate)
0092 };
0093
0094 QT_END_NAMESPACE
0095
0096 #endif