Здравствуйте, гость ( Вход | Регистрация )
|
SABROG |
26.5.2009, 11:52
Сообщение
#1
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Есть желание рисовать на дочерних окошках, причем хочется оставить их оригинальный render и рисовать поверх уже готовой картинки. Ввиду того, что дочерних элементов может быть сколько угодно, я не могу (а скорее не хочу) унаследоваться от каждого из них. Поэтому я использую installEventFilter.
Получился такой код: Но не получается. Если убрать первый QObject::eventFilter(o, e);, то виджет рисуется поверх линии, т.е. она остается на заднем плане. Если оставить, то рисуется вообще только одна линия, оригинального изображения виджета нет. paintEvent вызвать напрямую не могу, т.к. он protected, render() и repaint() приводят к рекурсии, естественно. |
|
|
|
![]() |
|
Litkevich Yuriy |
28.5.2009, 4:18
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Вот для эфекта затемнения я бы просто палитру окошка менял перед паказом диалога. И альфа канал бы не использовал, за ненадобностью. Т.к. само окошко все равно не прозрачное.
|
|
|
|
|
SABROG |
28.5.2009, 8:23
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Цитата(Litkevich Yuriy @ 28.5.2009, 5:18) Link Вот для эфекта затемнения я бы просто палитру окошка менял перед паказом диалога. И альфа канал бы не использовал, за ненадобностью. Т.к. само окошко все равно не прозрачное. Я думал над этим, но это не решение, а обход реальной задачи. igor_bogomolov, думаю я теперь созрел, чтобы принять этот вариант как окончательный на данный момент. Можно начать писать статью в wiki. Осталось лишь подумать еще над возможностью добавить прозрачную анимацию. Сообщение отредактировал SABROG - 28.5.2009, 8:23 |
|
|
|
SABROG QPaintEvent, installEventFilter, QPainter, Overpainting 26.5.2009, 11:52
kwisp Цитата(SABROG @ 26.5.2009, 12:52) оригина... 26.5.2009, 12:01
Litkevich Yuriy SABROG, первая мысля в слух: Стало быть фильтр выз... 26.5.2009, 12:14
SABROG Цитата(kwisp @ 26.5.2009, 13:01) поясни п... 26.5.2009, 12:15
Litkevich Yuriy Цитата(SABROG @ 26.5.2009, 16:15) Думаю p... 26.5.2009, 12:19
SABROG Через флаг не получилось. Второй paintEvent затира... 26.5.2009, 12:31
kwisp Цитата(SABROG @ 26.5.2009, 13:31) Второй ... 26.5.2009, 12:39
SABROG Цитата(kwisp @ 26.5.2009, 13:39) вообще к... 26.5.2009, 12:51
kwisp Цитата(SABROG @ 26.5.2009, 13:31) В момен... 26.5.2009, 12:53
SABROG Цитата(kwisp @ 26.5.2009, 13:53) Цитата(S... 26.5.2009, 12:56
Litkevich Yuriy Цитата(SABROG @ 26.5.2009, 16:56) В друго... 26.5.2009, 13:11
SABROG Цитата(Litkevich Yuriy @ 26.5.2009, 14:11... 26.5.2009, 13:23
Litkevich Yuriy SABROG, для случая не окна, глянь-ка сюда
и ещё
... 26.5.2009, 16:00
SABROG До этих мест я добрался уже давно, но никак не мог... 26.5.2009, 16:24
kwisp Цитата(Litkevich Yuriy @ 26.5.2009, 17:00... 26.5.2009, 16:24
SABROG Похоже получается.
Как я понял sendEvent вызыва... 26.5.2009, 16:35
Litkevich Yuriy Цитата(SABROG @ 26.5.2009, 20:35) Похоже ... 26.5.2009, 16:42
SABROG Цитата(Litkevich Yuriy @ 26.5.2009, 17:42... 26.5.2009, 16:46
Litkevich Yuriy а можешь тестовый примерчик вылочить, с минимумом ... 26.5.2009, 16:48
SABROG Цитата(Litkevich Yuriy @ 26.5.2009, 17:48... 26.5.2009, 16:50
SABROG Накатал простенький пример. Правда не самый удачны... 26.5.2009, 18:25
SABROG Господа, поздравьте меня. Наконец-то я это сделал: 26.5.2009, 19:22
DmP SABROG, сорри за офтоп, но чем делаются такие карт... 26.5.2009, 19:47
SABROG Цитата(DmP @ 26.5.2009, 20:47) SABROG, со... 26.5.2009, 20:34
igor_bogomolov Может я что то делаю не так, но нарисовать что то ... 26.5.2009, 22:09
SABROG Я об этом думал и хотел попробовать завтра такую ш... 26.5.2009, 22:28
igor_bogomolov Цитата(SABROG @ 26.5.2009, 23:28) - после... 26.5.2009, 22:40
kwisp igor_bogomolov,
на каждом виджете в отдельности п... 27.5.2009, 7:23
SABROG Цитата(igor_bogomolov @ 26.5.2009, 23:40)... 27.5.2009, 8:51
igor_bogomolov Цитата(kwisp @ 27.5.2009, 8:23) на каждом... 27.5.2009, 8:52
kwisp Цитата(igor_bogomolov @ 27.5.2009, 9:52) ... 27.5.2009, 9:01
igor_bogomolov Цитата(SABROG @ 27.5.2009, 9:51) если уст... 27.5.2009, 9:32
kwisp igor_bogomolov,
готово
проблема в viewport() он в... 27.5.2009, 10:20
igor_bogomolov kwisp, все правильно. Сам только что до этого доду... 27.5.2009, 10:32
Kagami Можно подумать в эту сторону
Раскрывающийся текстЦ... 27.5.2009, 10:47
igor_bogomolov Цитата(Kagami @ 27.5.2009, 11:47) Можно п... 27.5.2009, 11:06
igor_bogomolov RE: QPaintEvent, installEventFilter, QPainter, Overpainting 27.5.2009, 11:54
SABROG В общем затык на отрисовке чайлдов. Как я понял сх... 27.5.2009, 12:30
igor_bogomolov Цитата(SABROG @ 27.5.2009, 13:30) В общем... 27.5.2009, 12:59
SABROG Цитата(igor_bogomolov @ 27.5.2009, 13:59)... 27.5.2009, 13:19
igor_bogomolov У меня на сегодня уже перенагрузка мозга пошла. Во... 27.5.2009, 13:50
SABROG Виджет. 27.5.2009, 14:05
Litkevich Yuriy Цитата(SABROG @ 26.5.2009, 23:22) Господа... 27.5.2009, 14:41
SABROG Цитата(Litkevich Yuriy @ 27.5.2009, 15:41... 27.5.2009, 14:56
igor_bogomolov Тебя смущает двойной вызов обработчика события рис... 27.5.2009, 15:00
SABROG Цитата(igor_bogomolov @ 27.5.2009, 16:00)... 27.5.2009, 15:12
Litkevich Yuriy SABROG, я к тому, что вроде была для этого отдельн... 27.5.2009, 15:28
igor_bogomolov Я думаю, другого способа мы не найдем. Дело в том,... 27.5.2009, 16:33
Litkevich Yuriy а что если после собственного рисования, запрещать... 27.5.2009, 17:01
SABROG Цитата(Litkevich Yuriy @ 27.5.2009, 18:01... 27.5.2009, 17:32
Litkevich Yuriy а есть ещё такая штука как двойная буферизация, её... 27.5.2009, 17:49
SABROG Цитата(Litkevich Yuriy @ 27.5.2009, 18:49... 27.5.2009, 17:58
igor_bogomolov Цитата(Litkevich Yuriy @ 27.5.2009, 18:49... 27.5.2009, 17:57
igor_bogomolov SABROG, да объясни же, чем не устраивает полученно... 27.5.2009, 18:02
SABROG Цитата(igor_bogomolov @ 27.5.2009, 19:02)... 27.5.2009, 18:11
igor_bogomolov Цитата(SABROG @ 27.5.2009, 19:11) на скри... 27.5.2009, 18:24
SABROG Много чего придумать можно. Тот же эффект падающег... 27.5.2009, 19:48
igor_bogomolov Цитата(SABROG @ 27.5.2009, 15:56) это аль... 27.5.2009, 21:05
SABROG Ладно, чтобы завершить тему, можешь выложить приме... 27.5.2009, 21:12
igor_bogomolov Цитата(SABROG @ 27.5.2009, 22:12) Ладно, ... 27.5.2009, 21:40
SABROG Меня не столько исходники интересуют, сколько скри... 27.5.2009, 22:05
igor_bogomolov Цитата(SABROG @ 27.5.2009, 23:05) Меня не... 28.5.2009, 1:17
igor_bogomolov Цитата(SABROG @ 28.5.2009, 9:23) Осталось... 28.5.2009, 8:40
Litkevich Yuriy Цитата(igor_bogomolov @ 28.5.2009, 12:40)... 28.5.2009, 8:58
igor_bogomolov Все поправил. Теперь и анимация работает нормально... 28.5.2009, 11:02
SABROG Написал в wiki как смог, если есть желающие добави... 28.5.2009, 11:20
SABROG wasyota мне дал любопытную ссылочку http://www.qtc... 28.5.2009, 12:52
igor_bogomolov Цитата(SABROG @ 28.5.2009, 13:52) wasyota... 28.5.2009, 13:04
SABROG #ifndef __POSTEVENTFILTER_H
#define __POSTEVENTFIL... 28.5.2009, 13:08
igor_bogomolov Цитата(SABROG @ 28.5.2009, 12:20) Написал... 28.5.2009, 13:29
Litkevich Yuriy SABROG, а что если теперь запустить ссылкой в qt-a... 28.5.2009, 13:51
SABROG Цитата(Litkevich Yuriy @ 28.5.2009, 14:51... 28.5.2009, 13:57
Litkevich Yuriy ну на qt-apps, кто-то утверждал, что задачка не дл... 28.5.2009, 14:21
igor_bogomolov How to sendEvent QPaintEvent ? 28.5.2009, 14:24
SABROG Цитата(igor_bogomolov @ 28.5.2009, 15:24)... 28.5.2009, 14:38
Litkevich Yuriy Ах, да qtcentre.org, конечно, а не qt-apps 28.5.2009, 14:39
SABROG Вопрос. А ведь QRubberBand тоже рисуется поверх ви... 28.5.2009, 16:44
igor_bogomolov Цитата(SABROG @ 28.5.2009, 17:44) Хуже он... 28.5.2009, 18:17
Litkevich Yuriy igor_bogomolov, Прикольно получилось 28.5.2009, 19:19
ViGOur Цитата(igor_bogomolov @ 28.5.2009, 19:17)... 28.5.2009, 20:06
Kagami igor_bogomolov, выложи, пожалуйста, исходники с му... 28.5.2009, 20:55
igor_bogomolov Цитата(Kagami)igor_bogomolov, выложи, пожалуйста, ... 28.5.2009, 21:15
ViGOur igor_bogomolov, выложил твоего мужика на сайт: htt... 29.5.2009, 7:56
igor_bogomolov Цитата(ViGOur @ 29.5.2009, 8:56) Просто к... 29.5.2009, 9:13
Litkevich Yuriy Цитата(igor_bogomolov @ 29.5.2009, 13:13)... 29.5.2009, 9:18
ViGOur Это я сам дурак, ограничение в запросе стояло, пот... 29.5.2009, 9:23
ViGOur Блин, вот думаю исходник SUBROG'a выкладывать ... 29.5.2009, 19:49
igor_bogomolov Цитата(ViGOur @ 29.5.2009, 8:56) igor_bog... 29.5.2009, 22:31
ViGOur Цитата(igor_bogomolov @ 29.5.2009, 23:31)... 29.5.2009, 23:31
Litkevich Yuriy Цитата(kwisp @ 30.5.2009, 14:42) может во... 30.5.2009, 11:32
SABROG Не должно muzhik'у быть одному, поэтому я скле... 28.10.2009, 23:36
SABROG Это тролли так шутят или они действительно планиру... 30.10.2009, 23:31
Litkevich Yuriy Ну, а почему бы в 5-ке этому не появится (пострисо... 30.10.2009, 23:36
SABROG Цитата(Litkevich Yuriy @ 31.10.2009, 0:36... 30.10.2009, 23:46
BRE Цитата(SABROG @ 30.10.2009, 23:46) Ну есл... 30.10.2009, 23:50
Litkevich Yuriy Цитата(BRE @ 31.10.2009, 2:50) Думаю год ... 31.10.2009, 1:23
Litkevich Yuriy Тему разделил: Ализе́ Жакоте 31.10.2009, 13:49
Litkevich Yuriy Может будет интересно: тык 6.11.2009, 4:43![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 13.12.2025, 22:00 |