Апгрейд QCalendarWidget |
Здравствуйте, гость ( Вход | Регистрация )
Апгрейд QCalendarWidget |
giker |
18.5.2010, 10:23
Сообщение
#1
|
Студент Группа: Участник Сообщений: 26 Регистрация: 18.5.2010 Пользователь №: 1731 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем хорошего дня.
Нужно сделать компонент на основе QCalendarWidget в ячейках которого кроме числа будет отображаться дополнительная информация. Дополнительная информация должна отображаться только для выбранной даты. То есть мне надо знать область рисования выбранной ячейки календаря. В исходном коде класса есть метод
который и отвечают за прорисовку ячеек, но непонятно откуда он вызывается и откуда берется информация об области в которую происходит отрисовка. Не понятно также какой метод отрисовывает выбранную ячейку. Непонятно как связан класс QCalendarDelegate с классом QCalendarWidget. |
|
|
Litkevich Yuriy |
18.5.2010, 15:21
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
методы делагатов вызывают представления, например метод paint, представления вызывают в своём обработчике события рисования (paintEvent)
|
|
|
giker |
20.5.2010, 8:23
Сообщение
#3
|
Студент Группа: Участник Сообщений: 26 Регистрация: 18.5.2010 Пользователь №: 1731 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вопрос решен. Для того что бы нужная нам информация отображалась в выбранной ячейке календаря создаем класс-наследник от QCalendarWidget, в котором переопределяем метод paintCell
Но, если переопределить только этот метод, то при изменении даты, отображается информация соответствующая ячейке которая была выбрана до текущей, вызов методов paint() или update() не помогает. Для того что бы отображать актуальную информацию нужно вывести в публичные члены метод updateCells():
И вызывать его при смене выбранной даты после передачи календарю всей необходимой информации. |
|
|
Текстовая версия | Сейчас: 27.12.2024, 22:17 |