Qt 4.8
qstyleditemdelegate.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef QSTYLEDITEMDELEGATE_H
43 #define QSTYLEDITEMDELEGATE_H
44 
45 #include <QtGui/qabstractitemdelegate.h>
46 #include <QtCore/qstring.h>
47 #include <QtGui/qpixmap.h>
48 #include <QtCore/qvariant.h>
49 
51 
53 
54 QT_MODULE(Gui)
55 
56 #ifndef QT_NO_ITEMVIEWS
57 
59 class QItemEditorFactory;
60 
62 {
63  Q_OBJECT
64 
65 public:
66  explicit QStyledItemDelegate(QObject *parent = 0);
68 
69  // painting
70  void paint(QPainter *painter,
71  const QStyleOptionViewItem &option, const QModelIndex &index) const;
72  QSize sizeHint(const QStyleOptionViewItem &option,
73  const QModelIndex &index) const;
74 
75  // editing
76  QWidget *createEditor(QWidget *parent,
77  const QStyleOptionViewItem &option,
78  const QModelIndex &index) const;
79 
80  void setEditorData(QWidget *editor, const QModelIndex &index) const;
81  void setModelData(QWidget *editor,
82  QAbstractItemModel *model,
83  const QModelIndex &index) const;
84 
85  void updateEditorGeometry(QWidget *editor,
86  const QStyleOptionViewItem &option,
87  const QModelIndex &index) const;
88 
89  // editor factory
90  QItemEditorFactory *itemEditorFactory() const;
91  void setItemEditorFactory(QItemEditorFactory *factory);
92 
93  virtual QString displayText(const QVariant &value, const QLocale &locale) const;
94 
95 protected:
96  virtual void initStyleOption(QStyleOptionViewItem *option,
97  const QModelIndex &index) const;
98 
99  bool eventFilter(QObject *object, QEvent *event);
100  bool editorEvent(QEvent *event, QAbstractItemModel *model,
101  const QStyleOptionViewItem &option, const QModelIndex &index);
102 
103 private:
106 
107  Q_PRIVATE_SLOT(d_func(), void _q_commitDataAndCloseEditor(QWidget*))
108 };
109 
110 #endif // QT_NO_ITEMVIEWS
111 
113 
115 
116 #endif // QSTYLEDITEMDELEGATE_H
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
The QPainter class performs low-level painting on widgets and other paint devices.
Definition: qpainter.h:86
virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const =0
This pure abstract function must be reimplemented if you want to provide custom rendering.
The QAbstractItemDelegate class is used to display and edit data items from a model.
The QItemEditorFactory class provides widgets for editing item data in views and delegates.
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
EventRef event
#define QT_MODULE(x)
Definition: qglobal.h:2783
virtual void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
Updates the geometry of the editor for the item with the given index, according to the rectangle spec...
#define QT_BEGIN_HEADER
Definition: qglobal.h:136
virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const =0
This pure abstract function must be reimplemented if you want to provide custom rendering.
#define Q_GUI_EXPORT
Definition: qglobal.h:1450
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
#define Q_DISABLE_COPY(Class)
Disables the use of copy constructors and assignment operators for the given Class.
Definition: qglobal.h:2523
#define Q_PRIVATE_SLOT(d, signature)
Definition: qobjectdefs.h:73
The QString class provides a Unicode character string.
Definition: qstring.h:83
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
Sets the data for the item at the given index in the model to the contents of the given editor...
The QStyledItemDelegate class provides display and editing facilities for data items from a model...
virtual bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index)
When editing of an item starts, this function is called with the event that triggered the editing...
virtual QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
Returns the editor to be used for editing the data item with the given index.
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
#define Q_OBJECT
Definition: qobjectdefs.h:157
virtual bool eventFilter(QObject *, QEvent *)
Filters events if this object has been installed as an event filter for the watched object...
Definition: qobject.cpp:1375
The QAbstractItemModel class provides the abstract interface for item model classes.
The QModelIndex class is used to locate data in a data model.
quint16 index
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:53
#define Q_DECLARE_PRIVATE(Class)
Definition: qglobal.h:2467
The QStyleOptionViewItem class is used to describe the parameters used to draw an item in a view widg...
Definition: qstyleoption.h:539
virtual void setEditorData(QWidget *editor, const QModelIndex &index) const
Sets the contents of the given editor to the data for the item at the given index.
The QEvent class is the base class of all event classes.
Definition: qcoreevent.h:56
#define QT_END_HEADER
Definition: qglobal.h:137