Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Litkevich Yuriy |
22.5.2009, 2:40
Сообщение
#11
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Да, что-то оно ни вкакую не рисуется. Я уже два класса сделал из одного в другой событие шлю.
Заметил: Первый раз отправленное событие отрабатывает нормально, но все последующие разы событие paintEvent происходит, но QPainter ругается: Цитата QPainter::begin: Widget painting can only begin as a result of a paintEvent Такое ощущение, как будто чего-то не доделываю до конца. Исходники:
test.zip ( 1.7 килобайт )
Кол-во скачиваний: 221 |
|
|
|
|
igor_bogomolov |
22.5.2009, 11:32
Сообщение
#12
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
Цитата(Litkevich Yuriy @ 22.5.2009, 3:40) Link событие paintEvent происходит, но QPainter ругается Пытался разобраться в данном вопросе. Не смог При вызове paintEvent через postEvent, paint.paintEngine() возвращает 0. Данное поведение сокрыто где-то здесь Раскрывающийся текст Еще пробовал разобраться, как работает метод update(). В нем событие высылается так: Раскрывающийся текст QUpdateLaterEvent для нас недоступен. Реализаций метода repaint_sys и класса QWidgetBackingStore не смог даже найти, ни раками, ни через поиск. Как-то все слишком сложно для меня оказалось. Да и нужно ли в этом разбираться? Все равно так делать никто ни будет. Есть ведь метод update. |
|
|
|
|
Litkevich Yuriy |
22.5.2009, 12:10
Сообщение
#13
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(igor_bogomolov @ 22.5.2009, 15:32) Link Все равно так делать никто ни будет. Есть ведь метод update. да просто интересно, если можно посылать событие типа QEvent::Paint, то как, где и когда?Цитата(igor_bogomolov @ 22.5.2009, 15:32) Link Реализаций метода repaint_sys это поидее в приватной части (QWidgetPrivate), на которую d-указатель ссылается.
|
|
|
|
|
igor_bogomolov |
22.5.2009, 12:17
Сообщение
#14
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
Цитата(Litkevich Yuriy @ 22.5.2009, 13:10) Link да просто интересно Конечно интересно. Поэтому и пробовал разобраться Цитата(Litkevich Yuriy @ 22.5.2009, 13:10) Link это поидее в приватной части (QWidgetPrivate), на которую d-указатель ссылается. Это я понимаю. Объявление функции в классе есть (в QWidgetPrivate). Реализации я найти не смог. Посмотри исходники. Если найдешь, скажи пожалуйста где. Я не нашел, и поисковик ничего не дал.
Сообщение отредактировал igor_bogomolov - 22.5.2009, 12:18 |
|
|
|
|
Rocky |
3.6.2009, 0:07
Сообщение
#15
|
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7
|
Не совсем по теме, но вот эта вещь, narik1985, имхо бесмысленна:
нужно либо #ifndef (#if !defined), либо потом не #define, a #undef и потом #define. |
|
|
|
|
Litkevich Yuriy |
3.6.2009, 9:12
Сообщение
#16
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
ну да, перепутал человек.
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 31.12.2025, 14:04 |