Показать редакторы для всех ячеек в строке в QTableView - PullRequest
3 голосов
/ 21 апреля 2009

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

  • Единственный способ открыть несколько редакторов - это QAbstractItemView::openPersistentEditor() - попытка последовательно вызвать QAbstractItemView::edit() приводит только к одному редактору.
  • Я не могу использовать такие сигналы, как clicked() и doubleClicked() из QAbstractItemView, чтобы вызвать редактирование, потому что тогда оно не будет учитывать триггеры редактирования представления.
  • Похоже, отсутствует сигнал "редактирование завершено". Я хотел бы подключить этот сигнал к слоту, который вызывает closePersistentEditor() для ячеек в строке редактирования.

Любые предложения будут оценены.

Спасибо!

1 Ответ

3 голосов
/ 21 апреля 2009

Я ненавижу быть носителем плохих новостей, но я не могу придумать простой способ сделать то, что вы хотите. Я могу придумать пару вариантов, каждый из которых более болезненный, чем предыдущий:

  • Вы можете создать делегата, который всегда показывает редакторов, и когда пользователь изменяет выбранную строку, задайте этот делегат для новой выбранной строки и исходный делегат для отмененной строки.
  • Вы можете попробовать унаследовать от табличного представления и переопределить поведение для рисования соответствующих элементов для всего в данной строке. Я понятия не имею, насколько это будет сложно, но я сомневаюсь, что это будет тривиально.
  • Вы можете создать свой собственный вид для отображения модели. Я никогда не делал этого, и я не хотел бы думать обо всем, что потребуется для «полной» поддержки моделей. Однако, чтобы соответствовать одной конкретной модели, вам, возможно, удастся сойти с рук.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...