QTableView - не позволяют пользователю редактировать ячейку

Если это будет только кортеж кортежей, то что-то как rows=[map(int, row) for row in rows] добьется цели. (Существует понимание списка и вызов для отображения (f, LST), который равен [f (a) для в LST], там.)

Оценка не , что Вы хотите сделать, в случае, если существует что-то как __import__("os").unlink("importantsystemfile") в Вашей базе данных по некоторым причинам. Всегда проверяйте свой вход (если ни с чем иным, интервал исключения () повысит, если Вы плохо ввели).

11
задан Berschi 30 August 2009 в 01:03
поделиться

4 ответа

В зависимости от того, кодируете ли вы все или делаете что-то в дизайнере, установите

  • editTriggers на QAbstractItemView :: NoEditTriggers
  • selectionBehavior на ] QAbstractItemView :: SelectRows
  • необязательно установите selectionMode на QAbstractItemView :: SingleSelection , если вы хотите, чтобы пользователь выбрал ровно одну строку

в объекте tableview, все соответствующие вызовы будут иметь префикс set например setEditTriggers () в конструкторе, вы можете найти эти параметры в разделе AbstractItemView

19
ответ дан 3 December 2019 в 02:30
поделиться

Отключить бит ItemIsEditable элемента таблицы. например:

QTableWidgetItem* item = new QTableWidgetItem(...);
...
item->setFlags(item->flags() &= ~Qt::ItemIsEditable);
2
ответ дан 3 December 2019 в 02:30
поделиться

Попробуйте следующее:

table->setEditTriggers(QAbstractItemView::NoEditTriggers);
10
ответ дан 3 December 2019 в 02:30
поделиться

В идеале вы захотите использовать:

void QAbstractItemView::setItemDelegate ( QAbstractItemDelegate * delegate )

А затем создайте класс, унаследованный от QItemDelegate , как в в этом примере. Отредактируйте свой класс так, чтобы

QWidget * QItemDelegate::createEditor ( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const  

возвращал NULL

или используйте:

table->setEditTriggers(QAbstractItemView::NoEditTriggers);

Вы также захотите посмотреть

void setSelectionBehavior ( QAbstractItemView::SelectionBehavior behavior )

с параметром: QAbstractItemView :: SelectRows

Для справки: http://doc.trolltech.com/4.5/qtableview.html

1
ответ дан 3 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: