Qt: Что является противоположностью QAbstractItemView::NoEditTriggers?

Я хочу включить и отключить редактирование виджета QTableView для определенных сигналов. Я могу отключить его:

table->setEditTriggers(QAbstractItemView::NoEditTriggers);

Но как включить его снова?

1 ответ

Решение

Если editTriggers печатается:

qDebug()<< table->editTriggers();

получается:

QFlags<QAbstractItemView::EditTriggers>(DoubleClicked|EditKeyPressed|AnyKeyPressed)

поэтому можно предположить, что состояние по умолчанию:

QAbstractItemView::DoubleClicked | QAbstractItemView::EditKeyPressed | QAbstractItemView::AnyKeyPressed

Или более простое решение - сохранить состояние в начале как член класса:

*.час

// ...
private:
    QAbstractItemView::EditTriggers default_trigger;

*.cpp

// constructor
default_trigger = table->editTriggers();

а затем в своей функции вы используете:

if(table->editTriggers() == QAbstractItemView::NoEditTriggers)
    table->setEditTriggers(default_trigger);
else
    table->setEditTriggers(QAbstractItemView::NoEditTriggers);
Другие вопросы по тегам