QPaintEvent, installEventFilter, QPainter, Overpainting |
Здравствуйте, гость ( Вход | Регистрация )
QPaintEvent, installEventFilter, QPainter, Overpainting |
Litkevich Yuriy |
27.5.2009, 17:49
Сообщение
#51
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а есть ещё такая штука как двойная буферизация, её можно запрещать.
|
|
|
igor_bogomolov |
27.5.2009, 17:57
Сообщение
#52
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
|
|
|
SABROG |
27.5.2009, 17:58
Сообщение
#53
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
а есть ещё такая штука как двойная буферизация, её можно запрещать. Установка флагов Qt::WA_PaintOnScreen или Qt::WA_PaintOnScreen для детей приводит к крашу, также как и w->setAutoFillBackground(false); --- Пардон, это я забыл одно место раскомментировать. В общем всё равно флаги ничем не помогли, autoFillBackground(false) сделал у QListWidget'a фон списка не белым, а как у основного окна. Сообщение отредактировал SABROG - 27.5.2009, 18:06 |
|
|
igor_bogomolov |
27.5.2009, 18:02
Сообщение
#54
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
SABROG, да объясни же, чем не устраивает полученное решение
|
|
|
SABROG |
27.5.2009, 18:11
Сообщение
#55
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
SABROG, да объясни же, чем не устраивает полученное решение Ну вот если рисовать QPixmap, он же по идее будет рисоваться медленней с ростом количества окон, да и на скрине почему-то в некоторых местах у тебя синяя рамка перекрывает красные линии. К тому же как я уже говорил тут возникает проблема с прозрачностью. Прозрачный фон у виджетов накладывается друг на друга и в итоге я получаю совсем другой цвет. Да и сама по себе проблема до конца не решена. Сообщение отредактировал SABROG - 27.5.2009, 18:12 |
|
|
igor_bogomolov |
27.5.2009, 18:24
Сообщение
#56
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
на скрине почему-то в некоторых местах у тебя синяя рамка перекрывает красные линии В моем примере фильтр устоновлен для textedit->viewport(), для самого textedit - не установлен. Если восползоваться твоей функцией childsRecursive, все будет рисоваться нормально.проблема с прозрачностью Эт я не проверял. Надо будет посмотреть.Да и сама по себе проблема до конца не решена. Поподробнее. Что не решено. Для чего понадобилось рисовать поверх виджетов? Только для этого |
|
|
SABROG |
27.5.2009, 19:48
Сообщение
#57
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Много чего придумать можно. Тот же эффект падающего снега. Разные спец.эффекты.
Похоже уже есть смысл копать в сторону backingstore и paintEngine. Сообщение отредактировал SABROG - 27.5.2009, 20:00 |
|
|
igor_bogomolov |
27.5.2009, 21:05
Сообщение
#58
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
это альфа-канал, который ставится каждому чайлду. Но из-за того, что прозрачные бэкграунды наслаиваются друг на друга местами альфа-канал суммируется и происходит лажа. Назнач для кождого такого виджета, с которым лажа происходит, свойство setAutoFillBackground(true). Лажа пропадет |
|
|
SABROG |
27.5.2009, 21:12
Сообщение
#59
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Ладно, чтобы завершить тему, можешь выложить пример, где бы поверх чайлдов рисовалась картинка с альфа-каналом?
А то я уже устал, если честно. |
|
|
igor_bogomolov |
27.5.2009, 21:40
Сообщение
#60
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Ладно, чтобы завершить тему, можешь выложить пример, где бы поверх чайлдов рисовалась картинка с альфа-каналом? Могу конечно. Подчищу проек немного от экспериментов, выложу.А то я уже устал, если честно. Это твоя тема, тебе решать. Я лишь помочь пытался, в силу своих возможностей.Transparent Backgrounds in Qt 4.1 |
|
|
Текстовая версия | Сейчас: 29.11.2024, 7:06 |