Qt: Что является противоположностью QAbstractItemView :: NoEditTriggers? - PullRequest
0 голосов
/ 04 ноября 2018

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

table->setEditTriggers(QAbstractItemView::NoEditTriggers);

а как включить?

1 Ответ

0 голосов
/ 04 ноября 2018

Если напечатано editTriggers:

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

получается:

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

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

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

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

*. Ч

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

*. Каст

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

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

if(table->editTriggers() == QAbstractItemView::NoEditTriggers)
    table->setEditTriggers(default_trigger);
else
    table->setEditTriggers(QAbstractItemView::NoEditTriggers);
...