Не дает чтото изменить
C++ (Qt)
class ComboboxDelegate : public QItemDelegate
{
Q_OBJECT
public:
ComboboxDelegate(QStringList &stringList, 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;
void reset(QStringList &stringList);
private:
bool reset_data;
QStringList stringList;
};
Видешь тут reset_data
так вот пишу
C++ (Qt)
void ComboboxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
QString value = index.model()->data(index, Qt::EditRole).toString();
QComboBox *Combobox = static_cast<QComboBox*>(editor);
int res = Combobox->findText(value);
if (res == -1) res = 0;
Combobox->setCurrentIndex(res );
if (reset_data)
{
Combobox->clear();
Combobox->addItems(stringList);
reset_data = false; // Вот тут
}
}
Все не компилится так как из за const нельзя менять данные!