Russian Qt Forum
Март 29, 2024, 00:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Назначение пользовательской роли QTableView  (Прочитано 2641 раз)
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« : Июнь 19, 2020, 14:22 »

Отображение модели происходит в

Код:
QVariant MyModel::data(const QModelIndex &index, int role) const

Роль
Код:
Qt::DisplayRole
отвечает за отображение.

Возможно ли переназначить роль для отображения и как между ними переключаться?
Например

Код:
enum Roles {
      ValueRole = Qt::UserRole + 1,     
      ByteRole
    };

и использовать эти роли вместо
Код:
Qt::DisplayRole
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июнь 19, 2020, 14:41 »

Вьюхи работают через Qt::DisplayRole, так что, просто так не переназначить. Скажи, зачем тебе это понадобилось?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #2 : Июнь 19, 2020, 15:23 »

Вьюхи работают через Qt::DisplayRole, так что, просто так не переназначить. Скажи, зачем тебе это понадобилось?
Хочу отображать во view байты в hex и dec виде. По кнопке переключать. Самое глупое, что приходит в голову глобальную переменную в класс модели затолкать. Или ещё одну модель использовать.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Июнь 19, 2020, 15:31 »

Так добавь в модельку переключатель, по которому в DisplayRole будешь возвращать либо hex, либо dec. А можешь делегата сделать и его настраивать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #4 : Июнь 19, 2020, 16:28 »

Так добавь в модельку переключатель, по которому в DisplayRole будешь возвращать либо hex, либо dec. А можешь делегата сделать и его настраивать.
При установке данных удобно использовать роли.
Передал роль вместе с индексом и готово. Думал также с отображением можно что-то сделать.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Июнь 19, 2020, 20:12 »

Для редактирования модели есть Qt::EditRole
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 22.