Как я говорю QT всегда показывать редактору в QTableView?

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

If(!user.isLoggedIn && to.route.meta.requiresAuth) 
    next({name: 'login'});
else
    next();

И так как Ваши страницы входа в систему, регистрации и забытого пароля не требуют аутентификации, вы прерываете цикл

9
задан Marc Mutz - mmutz 26 July 2009 в 10:32
поделиться

4 ответа

Существует две возможности:

Используя setIndexWidget, но записи Trolltech:

Эта функция должна только использоваться для отображения статического содержания в видимой области, соответствующей объекту данных. Если Вы хотите отобразить пользовательский динамический контент или реализовать пользовательский виджет редактора, разделите QItemDelegate на подклассы вместо этого.

(И это повреждает шаблон Модели/Представления …),

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

4
ответ дан 4 December 2019 в 23:08
поделиться

Один способ получить автоматическое поведение редактирования состоит в том, чтобы назвать setEditTriggers представления () функцией с QAbstractItemView:: значение AllEditTriggers.

Для отображения содержания данного столбца определенным способом смотрите на QAbstractItemView:: setItemDelegateForColumn (). Это позволит Вам указать пользовательского делегата только к тем объектам, для которых нужен он. Однако это автоматически не создаст виджет редактора для каждого из них (могли в принципе быть тысячи из них), но Вы могли использовать делегата для рендеринга каждого объекта способом, который заставляет его быть похожим на виджет редактора.

3
ответ дан 4 December 2019 в 23:08
поделиться

QAbstractItemModel:: виртуальная функция флагов вызвана к тесту, если объект доступен для редактирования (см. QT:: ItemIsEditable). Смотрите на Создание Модели, Доступной для редактирования в Документации по программированию Модели/Представления.

0
ответ дан 4 December 2019 в 23:08
поделиться

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

0
ответ дан 4 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: