Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
spinbox-delegate.cpp
Go to the documentation of this file.
1
// Copyright (C) 2023 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
4
#
include
<
QStyledItemDelegate
>
5
#
include
<
QSpinBox
>
6
7
//! [declaration]
8
class
SpinBoxDelegate
:
public
QStyledItemDelegate
9
{
10
Q_OBJECT
11
12
public
:
13
SpinBoxDelegate
(
QObject
*
parent
=
nullptr
);
14
15
QWidget
*
createEditor
(QWidget *parent,
const
QStyleOptionViewItem &option,
16
const
QModelIndex &index)
const
override
;
17
18
void
setEditorData
(QWidget *editor,
const
QModelIndex &index)
const
override
;
19
void
setModelData
(QWidget *editor, QAbstractItemModel *model,
20
const
QModelIndex &index)
const
override
;
21
22
void
updateEditorGeometry
(QWidget *editor,
const
QStyleOptionViewItem &option,
23
const
QModelIndex &index)
const
override
;
24
};
25
//! [declaration]
26
27
//! [constructor]
28
SpinBoxDelegate
::SpinBoxDelegate(QObject *parent)
29
: QStyledItemDelegate(parent)
30
{
31
}
32
//! [constructor]
33
34
//! [createEditor]
35
QWidget
*
SpinBoxDelegate
::
createEditor
(QWidget *parent,
36
const
QStyleOptionViewItem &
/* option */
,
37
const
QModelIndex &
/* index */
)
const
38
{
39
QSpinBox *editor =
new
QSpinBox(parent);
40
editor->setFrame(
false
);
41
editor->setMinimum(0);
42
editor->setMaximum(100);
43
44
return
editor;
45
}
46
//! [createEditor]
47
48
//! [setEditorData]
49
void
SpinBoxDelegate
::
setEditorData
(QWidget *editor,
50
const
QModelIndex &index)
const
51
{
52
int
value = index.data(Qt::EditRole).toInt();
53
54
QSpinBox *spinBox =
static_cast
<QSpinBox*>(editor);
55
spinBox->setValue(value);
56
}
57
//! [setEditorData]
58
59
//! [setModelData]
60
void
SpinBoxDelegate
::
setModelData
(QWidget *editor, QAbstractItemModel *model,
61
const
QModelIndex &index)
const
62
{
63
QSpinBox *spinBox =
static_cast
<QSpinBox*>(editor);
64
spinBox->interpretText();
65
int
value = spinBox->value();
66
67
model->setData(index, value, Qt::EditRole);
68
}
69
//! [setModelData]
70
71
//! [updateEditorGeometry]
72
void
SpinBoxDelegate
::
updateEditorGeometry
(QWidget *editor,
73
const
QStyleOptionViewItem &option,
74
const
QModelIndex &
/* index */
)
const
75
{
76
editor->setGeometry(option.rect);
77
}
78
//! [updateEditorGeometry]
SpinBoxDelegate
[declaration]
Definition
spinbox-delegate.cpp:9
SpinBoxDelegate::createEditor
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
[constructor]
Definition
spinbox-delegate.cpp:35
SpinBoxDelegate::setModelData
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
[setEditorData]
Definition
spinbox-delegate.cpp:60
SpinBoxDelegate::updateEditorGeometry
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
[setModelData]
Definition
spinbox-delegate.cpp:72
SpinBoxDelegate::setEditorData
void setEditorData(QWidget *editor, const QModelIndex &index) const override
[createEditor]
Definition
spinbox-delegate.cpp:49
qtbase
src
widgets
doc
snippets
qitemdelegate
spinbox-delegate.cpp
Generated on
for Qt by
1.18.0