QListWidget :: setEditTriggers (QAbstractItemView :: AnyKeyPressed) не работает

Из книги, которую я читаю:

По умолчанию QListWidget доступен только для чтения. Если бы мы хотели, чтобы пользователь редактировал
элементы, мы могли бы установить триггеры редактирования вида, используя
QAbstractItemView :: setEditTriggers (); например, установка
QAbstractItemView :: AnyKeyPressed означает, что пользователь может начать редактирование
элемент, просто начав печатать.

Итак, я вызываю функцию в моем коде:

ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed);

Но когда я выбираю предмет и начинаю печатать, ничего не происходит.

6

Решение

Оказывается, что сами предметы также имеют редактируемые флаг, поэтому после их добавления мне нужно было повторить все из них и установить его. Теперь это работает.

// set the editable flag for each item
for (int ii = 0; ii < ui->listWidget->count(); ii++) {
ui->listWidget->item(ii)->setFlags(ui->listWidget->item(ii)->flags() | Qt::ItemIsEditable);
}
// set the editable triggers for the list widget
ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed);
7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]