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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пара вопросов по делегатам  (Прочитано 4521 раз)
Jokerochek
Гость
« : Июль 22, 2009, 12:14 »

1) Можно ли задавать конкретного делегата не только отдельной строке и колонке, но и отдельной ячейке?

2) Столкнулся с проблемой - при назначении собственного делегата не вызываются сигналы itemActivated, при изменении значения в модели. Можно ли связать этот сигнал с сигналом делегата commitData или closeEditor?
Записан
spectre71
Гость
« Ответ #1 : Июль 22, 2009, 13:11 »

1) Можно ли задавать конкретного делегата не только отдельной строке и колонке, но и отдельной ячейке?

В делегате можно по разному обрабатывать индексы, в том числе и поставлять разные редакторы для разных строк, колонок или конкретных индексов.
Записан
denka
Гость
« Ответ #2 : Июль 22, 2009, 13:24 »

По 1 нет нельзя

По 2 если имееться ввиду сигнал от группы классов Q*Widget то он и не должен испускаться при изменении данных
Записан
spectre71
Гость
« Ответ #3 : Июль 22, 2009, 15:00 »

По 1 нет нельзя

Можно, но не напрямую! Написано выше.
Записан
Jokerochek
Гость
« Ответ #4 : Июль 22, 2009, 17:50 »

Спасибо за ответы.
Spectre, я понял, что вы имели в виду. У этого способа есть один сильный недостаток - делегат, скорее всего, будет завязан на данной конкретной модели.
Хотя это тоже можно обойти, если создать делегат, который будет являться прослойкой:
-повесить его через setItemDelegate, а внутри него определить какие делегаты будут вызываться, в зависимости от индекса текущего элемента.
Записан
denka
Гость
« Ответ #5 : Июль 22, 2009, 22:22 »

По 1 нет нельзя

Можно, но не напрямую! Написано выше.

Я отвечал конкретно на конкретный вопрос. Ответ - нельзя. Читай что спрашивалось в начале топика:
1) Можно ли задавать конкретного делегата не только отдельной строке и колонке, но и отдельной ячейке?

Для вью можно задать один делегат для всех итемов или же для конкретной строки или столбца. Для конкретного итема нельзя.

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

З.ы. если я не прав прошу привести код где для 3-4 конкретных элементов QTableView будут установлены разные делегаты
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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