Закрытие редакторов QAbstractItemView - PullRequest
0 голосов
/ 01 декабря 2010

Я использую QAbstractItemView для управления очередью.Проблема в том, что редактор не закрывается и не обновляет значение в модели, когда пользователь нажимает кнопку отправки.Это вызывает некоторое разочарование.

Я просмотрел документы Qt, но не могу найти простой способ закрыть редактор и зафиксировать изменения.Как мне поступить об этом?

Ответы [ 2 ]

1 голос
/ 15 сентября 2015

Это то, что я использовал

void ProjectExplorerView::CloseCurrentEditorIfOpen(bool commit)
{
   QWidget* w = indexWidget(currentIndex());
   if (w != nullptr)
   {
     if (commit) {
        commitData(w);
        closeEditor(w, QAbstractItemDelegate::SubmitModelCache);
     } else {
        closeEditor(w, QAbstractItemDelegate::RevertModelCache);
     }
   }
 }
0 голосов
/ 03 декабря 2010

Похоже, вам придется отслеживать текущий открытый элемент с помощью модели выбора или сигналов ItemView или currentIndex(), когда у вас есть QModelIndex открытого в данный момент элемента, вы сможете закрыть его, используя closePersistentEditor ( const QModelIndex & index )

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