LINUX.ORG.RU

Qt и QAbstractListModel: как из кода сказать, что такой-то элемент списка сейчас редактруется?

 ,


0

1

Есть у меня модель, унаследованная от QAbstractListItem, представляющий собой список портов, которые есть у такого-то электронного компонента.

Есть у неё метод, который добавляет в список ещё один элемент (ещё один порт). По умолчанию ему присваивается имя вроде RENAME_ME_PLZ_ASAP. Предполагается, что пользователь его немедленно переименует.

Одна беда: чтобы переименовать этот порт, юзеру надо, как минимум, сделать следующее:

- отпустить клавиатуру,

- схватить мышку,

- прицелиться в нужный элемент списка,

- сделать туда двойной щелчок, чтобы началось редактирование

- отпустить мышку

- схватить клавиатуру

-- и только тогда можно будет переименовать этот ч0ртов порт.

Имею спросить: а как бы мне сразу же, добавив этот порт, задать ему режим редактирования принудительно, чтобы юзер смог переименовывать его уже сразу же, не отвлекаясь на то, чтобы делать это руками?

★

Последнее исправление: Yak (всего исправлений: 1)

по идее тебе надо запилить еще и свой delegate который будет уведомлять тебя, какой item редактируется.

ckotinko ☆☆☆
()
Ответ на: комментарий от XMs

То, что доктор прописал!

Это оно!

Yak ★
() автор топика
Ответ на: комментарий от XMs

О, а есть ли способ сделать так, чтобы когда я начинаю редактирование (например, щёлкаю двойным щелчком по нужной клеточке), то старое значение не сразу удалялось целиком, а его можно было именно редактировать?

UPD: А, всё, нашёл. Надо было в data(...) поддержать EditRole.

Yak ★
() автор топика
Последнее исправление: Yak (всего исправлений: 1)
Ответ на: комментарий от Yak

Ты ещё можешь на виджет навесить экземпляр QStyledItemDelegate, насколько я помню, это давало какие-то плюшки без возни с ролями

XMs ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.