ItemDelegate der nicht nur auf Edit Role angezeigt wird?
Verfasst: 5. September 2010 12:33
Hi,
ich habe einen kleinen Checkbox Delegate implementiert.
Dieser Delegate wird nur angezeigt wenn man per doppel click in die Celle klickt. Ich möchte jedoch das die Checkbox immer angezeigt wird und man einfach die Checkbox anklicken kann.
Viele Grüße
ich habe einen kleinen Checkbox Delegate implementiert.
Code: Alles auswählen
#include "checkboxdelegate.h"
#include <QDebug>
CheckboxDelegate::CheckboxDelegate(QObject *parent) :
QStyledItemDelegate(parent)
{
}
QWidget* CheckboxDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const {
QCheckBox *editor = new QCheckBox(parent);
return editor;
}
void CheckboxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const {
bool value = index.model()->data(index, Qt::EditRole).toBool();
qDebug() << value;
QCheckBox *check = static_cast<QCheckBox*>(editor);
check->setChecked(value);
}
void CheckboxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const {
QCheckBox *check = static_cast<QCheckBox*>(editor);
model->setData(index, check->isChecked(), Qt::EditRole);
qDebug() << "setModelData" << check->isChecked();
}
void CheckboxDelegate::updateEditorGeometry(QWidget *editor,
const QStyleOptionViewItem &option, const QModelIndex &index) const {
editor->setGeometry(option.rect);
}
Viele Grüße