Qt 4.8
Public Functions | Static Public Functions | Protected Functions | Properties | List of all members
QComboBoxDelegate Class Reference

#include <qcombobox_p.h>

Inheritance diagram for QComboBoxDelegate:
QItemDelegate QAbstractItemDelegate QObject

Public Functions

 QComboBoxDelegate (QObject *parent, QComboBox *cmb)
 
- Public Functions inherited from QItemDelegate
QWidgetcreateEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
 Returns the widget used to edit the item specified by index for editing. More...
 
bool hasClipping () const
 
QItemEditorFactoryitemEditorFactory () const
 Returns the editor factory used by the item delegate. More...
 
 QItemDelegate (QObject *parent=0)
 Constructs an item delegate with the given parent. More...
 
void setClipping (bool clip)
 
void setEditorData (QWidget *editor, const QModelIndex &index) const
 Sets the data to be displayed and edited by the editor from the data model item specified by the model index. More...
 
void setItemEditorFactory (QItemEditorFactory *factory)
 Sets the editor factory to be used by the item delegate to be the factory specified. More...
 
void setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
 Gets data from the editor widget and stores it in the specified model at the item index. More...
 
void updateEditorGeometry (QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
 Updates the editor for the item specified by index according to the style option given. More...
 
 ~QItemDelegate ()
 Destroys the item delegate. More...
 
- Public Functions inherited from QAbstractItemDelegate
 QAbstractItemDelegate (QObject *parent=0)
 Creates a new abstract item delegate with the given parent. More...
 
virtual ~QAbstractItemDelegate ()
 Destroys the abstract item delegate. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Static Public Functions

static bool isSeparator (const QModelIndex &index)
 
static void setSeparator (QAbstractItemModel *model, const QModelIndex &index)
 
- Static Public Functions inherited from QAbstractItemDelegate
static QString elidedText (const QFontMetrics &fontMetrics, int width, Qt::TextElideMode mode, const QString &text)
 Use QFontMetrics::elidedText() instead. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 

Protected Functions

void paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
 Renders the delegate using the given painter and style option for the item specified by index. More...
 
QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &index) const
 Returns the size needed by the delegate to display the item specified by index, taking into account the style information provided by option. More...
 
- Protected Functions inherited from QItemDelegate
QRect check (const QStyleOptionViewItem &option, const QRect &bounding, const QVariant &variant) const
 Note that on Mac, if /usr/include/AssertMacros. More...
 
QPixmap decoration (const QStyleOptionViewItem &option, const QVariant &variant) const
 Returns the pixmap used to decorate the root of the item view. More...
 
void doLayout (const QStyleOptionViewItem &option, QRect *checkRect, QRect *iconRect, QRect *textRect, bool hint) const
 
void drawBackground (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
 Renders the item background for the given index, using the given painter and style option. More...
 
virtual void drawCheck (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, Qt::CheckState state) const
 Renders a check indicator within the rectangle specified by rect, using the given painter and style option, using the given state. More...
 
virtual void drawDecoration (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QPixmap &pixmap) const
 Renders the decoration pixmap within the rectangle specified by rect using the given painter and style option. More...
 
virtual void drawDisplay (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QString &text) const
 Renders the item view text within the rectangle specified by rect using the given painter and style option. More...
 
virtual void drawFocus (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect) const
 Renders the region within the rectangle specified by rect, indicating that it has the focus, using the given painter and style option. More...
 
bool editorEvent (QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index)
 Reimplemented Function More...
 
bool eventFilter (QObject *object, QEvent *event)
 Returns true if the given editor is a valid QWidget and the given event is handled; otherwise returns false. More...
 
QRect rect (const QStyleOptionViewItem &option, const QModelIndex &index, int role) const
 
QPixmapselected (const QPixmap &pixmap, const QPalette &palette, bool enabled) const
 Returns the selected version of the given pixmap using the given palette. More...
 
QStyleOptionViewItem setOptions (const QModelIndex &index, const QStyleOptionViewItem &option) const
 
QRect textRectangle (QPainter *painter, const QRect &rect, const QFont &font, const QString &text) const
 
- Protected Functions inherited from QAbstractItemDelegate
 QAbstractItemDelegate (QObjectPrivate &, QObject *parent=0)
 Creates a new abstract item delegate with the given parent. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 

Properties

QComboBoxmCombo
 

Additional Inherited Members

- Public Types inherited from QAbstractItemDelegate
enum  EndEditHint {
  NoHint, EditNextItem, EditPreviousItem, SubmitModelCache,
  RevertModelCache
}
 This enum describes the different hints that the delegate can give to the model and view components to make editing data in a model a comfortable experience for the user. More...
 
- Public Slots inherited from QAbstractItemDelegate
bool helpEvent (QHelpEvent *event, QAbstractItemView *view, const QStyleOptionViewItem &option, const QModelIndex &index)
 Whenever a help event occurs, this function is called with the event view option and the index that corresponds to the item where the event occurs. More...
 
- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Signals inherited from QAbstractItemDelegate
void closeEditor (QWidget *editor, QAbstractItemDelegate::EndEditHint hint=NoHint)
 This signal is emitted when the user has finished editing an item using the specified editor. More...
 
void commitData (QWidget *editor)
 This signal must be emitted when the editor widget has completed editing the data, and wants to write it back into the model. More...
 
void sizeHintChanged (const QModelIndex &)
 This signal must be emitted when the sizeHint() of index changed. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

Definition at line 296 of file qcombobox_p.h.

Constructors and Destructors

◆ QComboBoxDelegate()

QComboBoxDelegate::QComboBoxDelegate ( QObject parent,
QComboBox cmb 
)
inline

Definition at line 299 of file qcombobox_p.h.

299 : QItemDelegate(parent), mCombo(cmb) {}
QItemDelegate(QObject *parent=0)
Constructs an item delegate with the given parent.
QComboBox * mCombo
Definition: qcombobox_p.h:337

Functions

◆ isSeparator()

static bool QComboBoxDelegate::isSeparator ( const QModelIndex index)
inlinestatic

Definition at line 301 of file qcombobox_p.h.

Referenced by QComboBoxPrivateContainer::eventFilter(), and QComboMenuDelegate::getStyleOption().

301  {
302  return index.data(Qt::AccessibleDescriptionRole).toString() == QLatin1String("separator");
303  }
QVariant data(int role=Qt::DisplayRole) const
Returns the data for the given role for the item referred to by the index.
QString toString() const
Returns the variant as a QString if the variant has type() String , Bool , ByteArray ...
Definition: qvariant.cpp:2270
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString

◆ paint()

void QComboBoxDelegate::paint ( QPainter painter,
const QStyleOptionViewItem option,
const QModelIndex index 
) const
inlineprotectedvirtual

Renders the delegate using the given painter and style option for the item specified by index.

When reimplementing this function in a subclass, you should update the area held by the option's rect variable, using the option's state variable to determine the state of the item to be displayed, and adjust the way it is painted accordingly.

For example, a selected item may need to be displayed differently to unselected items, as shown in the following code:

if (option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.highlight());
int size = qMin(option.rect.width(), option.rect.height());
int brightness = index.model()->data(index, Qt::DisplayRole).toInt();
double radius = (size/2.0) - (brightness/255.0 * size/2.0);
if (radius == 0.0)
return;
painter->save();
painter->setRenderHint(QPainter::Antialiasing, true);
painter->setPen(Qt::NoPen);
if (option.state & QStyle::State_Selected)
painter->setBrush(option.palette.highlightedText());
else

...

After painting, you should ensure that the painter is returned to its the state it was supplied in when this function was called. For example, it may be useful to call QPainter::save() before painting and QPainter::restore() afterwards.

See also
QStyle::State

Reimplemented from QItemDelegate.

Definition at line 312 of file qcombobox_p.h.

314  {
315  if (isSeparator(index)) {
316  QRect rect = option.rect;
317  if (const QStyleOptionViewItemV3 *v3 = qstyleoption_cast<const QStyleOptionViewItemV3*>(&option))
318  if (const QAbstractItemView *view = qobject_cast<const QAbstractItemView*>(v3->widget))
319  rect.setWidth(view->viewport()->width());
320  QStyleOption opt;
321  opt.rect = rect;
323  } else {
324  QItemDelegate::paint(painter, option, index);
325  }
326  }
static bool isSeparator(const QModelIndex &index)
Definition: qcombobox_p.h:301
QStyle * style() const
Definition: qwidget.cpp:2742
The QStyleOptionViewItemV3 class is used to describe the parameters necessary for drawing a frame in ...
Definition: qstyleoption.h:590
The QStyleOption class stores the parameters used by QStyle functions.
Definition: qstyleoption.h:67
virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w=0) const =0
Draws the given primitive element with the provided painter using the style options specified by opti...
The QAbstractItemView class provides the basic functionality for item view classes.
QRect rect(const QStyleOptionViewItem &option, const QModelIndex &index, int role) const
void setWidth(int w)
Sets the width of the rectangle to the given width.
Definition: qrect.h:442
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:58
QComboBox * mCombo
Definition: qcombobox_p.h:337
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
Renders the delegate using the given painter and style option for the item specified by index...
QRect rect
the area that should be used for various calculations and painting
Definition: qstyleoption.h:90

◆ setSeparator()

static void QComboBoxDelegate::setSeparator ( QAbstractItemModel model,
const QModelIndex index 
)
inlinestatic

Definition at line 304 of file qcombobox_p.h.

Referenced by QComboBox::insertSeparator().

304  {
305  model->setData(index, QString::fromLatin1("separator"), Qt::AccessibleDescriptionRole);
306  if (QStandardItemModel *m = qobject_cast<QStandardItemModel*>(model))
307  if (QStandardItem *item = m->itemFromIndex(index))
308  item->setFlags(item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled));
309  }
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Sets the role data for the item at index to value.
The QStandardItemModel class provides a generic model for storing custom data.
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
Definition: qstring.cpp:4188
The QStandardItem class provides an item for use with the QStandardItemModel class.

◆ sizeHint()

QSize QComboBoxDelegate::sizeHint ( const QStyleOptionViewItem option,
const QModelIndex index 
) const
inlineprotectedvirtual

Returns the size needed by the delegate to display the item specified by index, taking into account the style information provided by option.

When reimplementing this function, note that in case of text items, QItemDelegate adds a margin (i.e. 2 * QStyle::PM_FocusFrameHMargin) to the length of the text.

Reimplemented from QItemDelegate.

Definition at line 328 of file qcombobox_p.h.

329  {
330  if (isSeparator(index)) {
332  return QSize(pm, pm);
333  }
334  return QItemDelegate::sizeHint(option, index);
335  }
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=0, const QWidget *widget=0) const =0
Returns the value of the given pixel metric.
static bool isSeparator(const QModelIndex &index)
Definition: qcombobox_p.h:301
QStyle * style() const
Definition: qwidget.cpp:2742
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Returns the size needed by the delegate to display the item specified by index, taking into account t...
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:53
QComboBox * mCombo
Definition: qcombobox_p.h:337

Properties

◆ mCombo

QComboBox* QComboBoxDelegate::mCombo
private

Definition at line 337 of file qcombobox_p.h.


The documentation for this class was generated from the following file: