Название: [РЕШЕНО] Как в QTreeView запретить редактирование. Отправлено: juvf от Июнь 16, 2008, 15:43 Есть таблица сделанная из QTreeView. Нужно редактировать только 3-ю калонку. Написал свой делегат для 3-ей калонки. А как запретить редактирование в остальных?
если так Код: myTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers); То тогда вся таблица не редактируеться. А как оставить 3-ю калонку ридактируемой, а остальные нет? Название: Re: Как в QTreeView запретить редактирование. Отправлено: -QT- от Июнь 16, 2008, 15:51 Код: // Это для редактирования записей Название: Re: Как в QTreeView запретить редактирование. Отправлено: juvf от Июнь 17, 2008, 08:30 -=QT=-
На сколько я понял твоё решение позволит запретить изменять данные в определённых колонках. Т.е. будет вызван делегат для каждой колонки, будет изменено значение в ячейки, а потом, при покидании ячейки значение из делигата будет перемещено в модель. И если редактировалась колонка 0 или 2, то значение в этих колонках измениться. А для др. колонок - не измениться. Но мне бы хотелось, чтоб делигат вызывался только для 3-ей колонки, чтоб для др. колонок делигат даже не вызывался. Как запретить вызов делигата для определенных колонок? Название: Re: Как в QTreeView запретить редактирование. Отправлено: Zmeishe от Июнь 17, 2008, 09:00 Цитировать Но мне бы хотелось, чтоб делигат вызывался только для 3-ей колонки, чтоб для др. колонок делигат даже не вызывался. Qt::ItemFlags QMyJobTreeModel::flags ( const QModelIndex & index) const{ if(index.column() == 2) return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable; return Qt::ItemIsEnabled | Qt::ItemIsSelectable; } Название: Re: Как в QTreeView запретить редактирование. Отправлено: juvf от Июнь 17, 2008, 10:03 Цитировать Код: Qt::ItemFlags QMyJobTreeModel::flags ( const QModelIndex & index) const Ага, спасибо. Нашел в инете подобное решение. Проблема решена. |