Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: рисование на прозрачном виджете
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
Алексей1153
Как сделать такую вещь: виджет должен быть прозрачным, но то, что я дополнительно рисую в paintEvent (примитивы, буквы, битмапы) должны отображаться

Нашёл только полупрозрачность виджета, но это применяется также и к остальной графике в целом (
igor_bogomolov
Посмотри этот пример http://www.qtcentre.org/wiki/index.php?title=Widget_Overlay
QCasper
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);


http://www.youtube.com/watch?v=H_-IWn42WEU - здесь пример работы (с 30-й секунды заметнее).
Алексей1153
Цитата(igor_bogomolov @ 3.9.2010, 0:36) *

нет, это не то. вызов
setWindowOpacity(0.3);
показывает, что линии тоже полупрозрачные стали

QCasper, О да! Самое оно, спасибо )) Щас ещё найду, как из панели задач кнопку убрать - и вообще красота :)

Офигеть, при выводе *.png прозрачные пикселы автоматически не реагируют на мышь ) Круть да и только
Алексей1153
Цитата(Алексей1153 @ 3.9.2010, 1:30) *
Щас ещё найду, как из панели задач кнопку убрать

блин, а так и не понял, как это сделать ...

А ещё - как сделать всегда поверх всех окон?
Litkevich Yuriy
Цитата(Алексей1153 @ 3.9.2010, 4:51) *
А ещё - как сделать всегда поверх всех окон?
поищи по форуму. Если не найдёшь - создай отдельную тему.
Sokoloff
Это читали?
Алексей1153
Sokoloff, :) ЭТО мы читаем регулярно. Нажимая F1. Только когда 4 часа утра, а надо срочно сделать - там фиг что отроешь. А ответ я нашёл на этом форуме, в той теме и запостил

http://www.forum.crossplatform.ru/index.php?showtopic=2552
Sokoloff
Цитата(Алексей1153 @ 3.9.2010, 20:37) *
Sokoloff, :) ЭТО мы читаем регулярно. Нажимая F1. Только когда 4 часа утра, а надо срочно сделать - там фиг что отроешь. А ответ я нашёл на этом форуме, в той теме и запостил

Брр... Ничего не понял в какой "той теме" и куда запостил?

Все, догнал, 10 вечера а я работе, тоже не сахар.
Алексей1153
:)
Litkevich Yuriy
Цитата(Sokoloff @ 4.9.2010, 1:03) *
в какой "той теме" и куда запостил?
чтобы всем было понятно: это тут
xls
Цитата(Алексей1153 @ 2.9.2010, 21:12) *
Как сделать такую вещь: виджет должен быть прозрачным, но то, что я дополнительно рисую в paintEvent (примитивы, буквы, битмапы) должны отображаться
Нашёл только полупрозрачность виджета, но это применяется также и к остальной графике в целом (

В случае, когда логика работы проектируемого виджета проста, приведенный подход себя оправдывает. В более сложных случаях, когда, например, нужно будет вывести таблицу и сохранить возможность нетривиального взаимодействия с ней для пользователя, "прозрачность" текста в форме сыграет плохую шутку: для того, чтобы сделать активным строку нужно будет "попадать" мышью точно в текст, т.к. остальное содержимое будет прозрачным.
Алексей1153
xls, это анимированный персонаж на рабочем столе - на нём таблиц не предполагается :) Когда таблица - там уж понятно, что прозначность нафиг не нужна. Не нужно путать интерфейс с мультиком.
xls
Цитата(Алексей1153 @ 6.9.2010, 10:10) *
xls, это анимированный персонаж на рабочем столе - на нём таблиц не предполагается :) Когда таблица - там уж понятно, что прозначность нафиг не нужна. Не нужно путать интерфейс с мультиком.

Обычно это, действительно, не нужно. Но "случаи разные бывают" и в том числе с прозрачными таблицами. У меня как раз это и произошло. Если кто-то будет искать инфу по данной теме, это ему поможет.
Алексей1153
Не могу придумать такой случай :) Скорее всего - ошибка в проектировании
Sokoloff
Цитата(Алексей1153 @ 6.9.2010, 12:17) *
Не могу придумать такой случай :) Скорее всего - ошибка в проектировании

Я бы не был так категоричен, ситуации разные бывают. Ну вот например ситуация, когда может понадобиться прозрачная таблица. Плеер с поддержкой "скинов", всякие рамочки, кнопочки, и фон под таблицей рисует движок скинов, а поверх надо вывести прозрачную таблицу - плей-лист.
Алексей1153
Цитата(Sokoloff @ 6.9.2010, 15:34) *
Плеер с поддержкой "скинов", всякие рамочки, кнопочки, и фон под таблицей рисует движок скинов, а поверх надо вывести прозрачную таблицу - плей-лист.

тут можно просто нарисовать таблицу сверху. Или нарисовать её на QImage, затем скомбинировать с уже отрисованным фоном так, чтобы белый цвет таблицы не нарисовался, а остальное нарисовалось
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.