Здравствуйте, у меня есть делегат- QTimeEdit, я делегирую его в QTableWidget, фактически за основу я взял делегат QSpinBox'a из примеров Qt, и изменил то что мне надо, но выскакивают ошибки, я меняю код, и ошибки меняются
Вот сам код
delegate.h
#ifndef DELEGATE_H
#define DELEGATE_H
#include <QItemDelegate>
#include <QModelIndex>
#include <QObject>
#include <QSize>
#include <QSpinBox>
//! [0]
class TimeEditDelegate : public QItemDelegate
{
Q_OBJECT
public:
TimeEditDelegate(QObject *parent = 0);
QTime * value;
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor,
const QStyleOptionViewItem &option, const QModelIndex &index) const;
};
//! [0]
#endif
delegate.cpp
#include <QtGui>
#include "delegate.h"
//! [0]
TimeEditDelegate::TimeEditDelegate(QObject *parent)
: QItemDelegate(parent)
{
}
//! [0]
//! [1]
QWidget *TimeEditDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &/* option */,
const QModelIndex &/* index */) const
{
QTimeEdit *editor = new QTimeEdit(parent);
return editor;
}
//! [1]
//! [2]
void TimeEditDelegate::setEditorData(QWidget *editor,
const QModelIndex &index) const
{
* value = index.model()->data(index, Qt::EditRole).toTime();
QTimeEdit *timeEdit = static_cast<QTimeEdit*>(editor);
timeEdit->setTime(* value);
}
//! [2]
//! [3]
void TimeEditDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const
{
QTimeEdit *timeEdit = static_cast<QTimeEdit*>(editor);
timeEdit->interpretText();
* value = timeEdit->time();
model->setData(index, value , Qt::EditRole);
}
//! [3]
//! [4]
void TimeEditDelegate::updateEditorGeometry(QWidget *editor,
const QStyleOptionViewItem &option, const QModelIndex &/* index */) const
{
editor->setGeometry(option.rect);
}
//! [4]
Скажите пожалуйста, что я делаю неправильно, и объясните как правильно, если не трудно
Вот, какая ошибка выскакивает сейчас
Ошибка 1 error C2248: QVariant::QVariant: невозможно обратиться к private член, объявленному в классе "QVariant" c:\Documents and Settings\hepr\Мои документы\Visual Studio 2008\Projects\asd\asd\delegets\delegate.cpp 87
Заранее спасибо!