16 #include <QApplication> 18 #include <QDoubleSpinBox> 25 ,
const QModelIndex &index)
const 27 QVariant data = index.data(Qt::DisplayRole);
29 QStyleOptionViewItem opt = option;
30 initStyleOption(&opt, index);
32 QStyle *style = QApplication::style();
35 style->drawItemText(painter, opt.rect.adjusted(0,0,-5,0), Qt::AlignRight | Qt::AlignVCenter, opt.palette,
true, data.toString());
39 ,
const QModelIndex &index)
const 41 QVariant data = index.data(Qt::EditRole);
42 QVariant displayData = index.data(Qt::DisplayRole);
43 QVariant absoluteDose = index.data(Qt::UserRole+1);
47 QDoubleSpinBox* spinBox =
new QDoubleSpinBox(parent);
48 spinBox->setDecimals(2);
49 if (absoluteDose.toBool())
51 spinBox->setSingleStep(0.5);
52 spinBox->setSuffix(QString(
" Gy"));
56 spinBox->setSingleStep(1.0);
57 spinBox->setSuffix(QString(
" %"));
60 spinBox->setMinimum(0.0);
61 spinBox->setMaximum(9999.0);
63 spinBox->installEventFilter( const_cast<QmitkDoseValueDelegate*>(
this) );
69 return new QLabel(displayData.toString(), parent);
75 QVariant data = index.data(Qt::EditRole);
80 QDoubleSpinBox* spinBox = qobject_cast<QDoubleSpinBox *>(editor);
83 spinBox->setValue(data.toDouble());
87 QStyledItemDelegate::setEditorData(editor, index);
93 ,
const QModelIndex &index)
const 95 QVariant data = index.data(Qt::EditRole);
99 QDoubleSpinBox* spinBox = qobject_cast<QDoubleSpinBox *>(editor);
100 double doubleValue = spinBox->value();
102 QVariant doubleValueVariant(doubleValue);
103 model->setData(index, doubleValueVariant);
107 QStyledItemDelegate::setModelData(editor, model, index);
QmitkDoseValueDelegate(QObject *parent=nullptr)
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void setEditorData(QWidget *editor, const QModelIndex &index) const override
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override