Делегат QComboBox в модели QTableView, Как выводить делегат в таблице? |
Здравствуйте, гость ( Вход | Регистрация )
Делегат QComboBox в модели QTableView, Как выводить делегат в таблице? |
Jafferson |
23.11.2018, 8:19
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 23.11.2018 Пользователь №: 5011 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день товарищи. Появилась проблема которую не могу решить уже очень долгое время. В общем, у меня есть модель QTableView в которой я хочу в определенном столбце выводить делегат QComboBox. Проблема в том, что не понимаю что нужно возвращать в методе data в столбце где должен быть делегат. Подскажите, что я делаю не так. P.S. Это мой первый большой проект на Qt, так что принимаю любую критику.
Описание делегата.
Слот, который создает новую заметку в таблице.
Метод data моей модели.
|
|
|
Алексей1153 |
24.11.2018, 8:15
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
наверное, ничего не надо там возвращать, если делегат есть. Виджет же сам себя отображает. Либо нужно вызвать data родительского класса (попробовать сейчас не на чем)
Cовет: нумеровать колонки не цифрами, а именованными константами например
Сообщение отредактировал Алексей1153 - 24.11.2018, 8:19 |
|
|
Litkevich Yuriy |
11.12.2018, 13:28
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
наверное, ничего не надо там возвращать, если делегат есть. возвращать всё же стоит. Для EditRole при наличии своего делегата можно возвращать тоже что и для DisplayRole (т.е. для обычного отображения).Слот, который создает новую заметку в таблице. Проблемы: каждый раз когда будет вызван слот будет создан новый делегат, помещён в представление. А старый так и останется занимать память.Правильный способ: создал представление, создал ему делегаты. Делегаты должны сами получать связанные с их работой данные. |
|
|
Текстовая версия | Сейчас: 28.11.2024, 2:35 |