QPaintEvent, installEventFilter, QPainter, Overpainting |
Здравствуйте, гость ( Вход | Регистрация )
QPaintEvent, installEventFilter, QPainter, Overpainting |
Litkevich Yuriy |
26.5.2009, 13:11
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SABROG |
26.5.2009, 13:23
Сообщение
#12
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
В другом методе например, вызываемым внутри eventFilter'a. ну это и будет в фильтре событий.Всё, что я хочу сказать, это то, что на методе paintEvent свет не сошелся при отрисовке, главное создать правильные условия/событие. Но мы отклонились от темы, рисовать не вопрос. void QWidget::update ( const QRect & rect ) - не знаю как его можно прикрутить к фильтру событий, это надо его как-то вызвать на ребенке, чтобы он и линию не затер и себя смог отрисовать, врятли это возможно. |
|
|
Litkevich Yuriy |
26.5.2009, 16:00
Сообщение
#13
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
SABROG, для случая не окна, глянь-ка сюда
и ещё вот как делают троли: интересные места выделены в коментариях
|
|
|
SABROG |
26.5.2009, 16:24
Сообщение
#14
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
До этих мест я добрался уже давно, но никак не могу понять в чем разница. Если ключ в QApplication::sendEvent(object, event);, то почему у меня это приводит к рекурсии и как следствие к крашу...
--- Тэкс похоже этот m_widget что-то типа моего флага:
Сообщение отредактировал SABROG - 26.5.2009, 16:25 |
|
|
kwisp |
26.5.2009, 16:24
Сообщение
#15
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
SABROG |
26.5.2009, 16:35
Сообщение
#16
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Похоже получается.
Как я понял sendEvent вызывает цикл eventFilter еще раз и таким образом заставляет нарисоваться виджетам. А нулевой m_widget (в моем случае обычный flag типа bool) нужен, чтобы прервать бесконечный цикл. Значит я все-таки рыл в правильную сторону. |
|
|
Litkevich Yuriy |
26.5.2009, 16:42
Сообщение
#17
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SABROG |
26.5.2009, 16:46
Сообщение
#18
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Похоже получается. т.е. эти чёрные линии ты нарисовал поверх виджета в фильтре событий?Первая линия рисуется для centralWidget(), вторая для его чайлдов, в данном случае это только QGroupBox, т.к. надо еще писать функцию рекурсии, чтобы пройтись по всему дереву, а у меня пока руки не дошли. |
|
|
Litkevich Yuriy |
26.5.2009, 16:48
Сообщение
#19
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а можешь тестовый примерчик вылочить, с минимумом виджетов. Найду время тоже побалуюсь.
|
|
|
SABROG |
26.5.2009, 16:50
Сообщение
#20
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
Текстовая версия | Сейчас: 1.12.2024, 14:08 |