![]() |
|
![]() ![]() ![]() |
|
null56 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
Тема обсуждалась чуть ранее, но я так и не понял, в чем проблема?
Есть класс наследник от QScrollArea, у него переопределено событие eventPaint
Вывод в консоль при каждой отрисовке:
Нельзя что ли на нем рисовать? ничего не рисуется на виджете, хотя этот фокус проходит на аналогичном примере QMainWindow |
||||
|
|||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
Вот решение... но зачем вызывать базовый обработчик?
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ты не можешь рисовать на чужих окнах в paintEvent'e какого-нибудь окна. viewport() - не является одним из родителей QScrollArea, это окно вручную устанавливается через передачу указателя (setViewport()). Переопредели painEvent в классе viewport'a.
|
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
Способ выше работает... виджет уже имеет видимо свой вьюпорт.... на чем - то он должен же рисовать
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Он работает только потому, что ты вызываешь оригинальный обработчик, который в свою очередь вызывает обработчик paintEvent дочерних виджетов - viewport'a. В итоге если ты не рисуешь на родительском окне, то дочерние тоже не перерисуются. |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
Ну в приципе это логично, тогда какой смысл переопределять событие дочернего виджета...
Это нужно самому компонент создавать, там переопределять, потом делать setViewport...? тогда и будет работать непосредственно.... |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Да, иначе это чревато тем, что переопределенный paintEvent главного окна тупо отресует твою картинку поверх нарисованного без учета перекрытия окон. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |