File indexing completed on 2026-09-18 09:27:01
0001
0002
0003
0004
0005 #ifndef QSTYLEDITEMDELEGATE_H
0006 #define QSTYLEDITEMDELEGATE_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 QStyledItemDelegatePrivate;
0019 class QItemEditorFactory;
0020
0021 class Q_WIDGETS_EXPORT QStyledItemDelegate : public QAbstractItemDelegate
0022 {
0023 Q_OBJECT
0024
0025 public:
0026 explicit QStyledItemDelegate(QObject *parent = nullptr);
0027 ~QStyledItemDelegate();
0028
0029
0030 void paint(QPainter *painter,
0031 const QStyleOptionViewItem &option, const QModelIndex &index) const override;
0032 QSize sizeHint(const QStyleOptionViewItem &option,
0033 const QModelIndex &index) const override;
0034
0035
0036 QWidget *createEditor(QWidget *parent,
0037 const QStyleOptionViewItem &option,
0038 const QModelIndex &index) const override;
0039
0040 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
0041 void setModelData(QWidget *editor,
0042 QAbstractItemModel *model,
0043 const QModelIndex &index) const override;
0044
0045 void updateEditorGeometry(QWidget *editor,
0046 const QStyleOptionViewItem &option,
0047 const QModelIndex &index) const override;
0048
0049
0050 QItemEditorFactory *itemEditorFactory() const;
0051 void setItemEditorFactory(QItemEditorFactory *factory);
0052
0053 virtual QString displayText(const QVariant &value, const QLocale &locale) const;
0054
0055 protected:
0056 virtual void initStyleOption(QStyleOptionViewItem *option,
0057 const QModelIndex &index) const;
0058
0059 bool eventFilter(QObject *object, QEvent *event) override;
0060 bool editorEvent(QEvent *event, QAbstractItemModel *model,
0061 const QStyleOptionViewItem &option, const QModelIndex &index) override;
0062
0063 private:
0064 Q_DECLARE_PRIVATE(QStyledItemDelegate)
0065 Q_DISABLE_COPY(QStyledItemDelegate)
0066 };
0067
0068 QT_END_NAMESPACE
0069
0070 #endif