class LineEditDelegate : public QItemDelegate
{
Q_OBJECT
public:
LineEditDelegate(QObject* parent = 0);
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;
};
LineEditDelegate::LineEditDelegate(QObject* parent)
: QItemDelegate(parent)
{
}
QWidget* LineEditDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& /*option*/, const QModelIndex& index ) const
{
Q_UNUSED(index);
QLineEdit* lineEdit = new QLineEdit(parent);
lineEdit->setValidator(new QIntValidator(0,100,lineEdit));
return lineEdit;
}
void LineEditDelegate::setEditorData(QWidget* editor, const QModelIndex& index) const
{
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(editor);
if (!lineEdit) return;
lineEdit->setText(index.data(Qt::EditRole).toString());
}
void LineEditDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const
{
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(editor);
if (!lineEdit) return;
model->setData(index, lineEdit->text());
}
void LineEditDelegate::updateEditorGeometry(QWidget* editor,
const QStyleOptionViewItem& option, const QModelIndex& /* index */) const
{
editor->setGeometry(option.rect);
}
void QTableWidget::setItem ( int row, int column, QTableWidgetItem * item )
QTableWidgetItem * QTableWidget::item ( int row, int column ) const