Название: содержание родительского виджета Отправлено: jasf от Октябрь 19, 2009, 10:38 Здравствуйте. Хочется следующего. Есть, получается, backgroundWidget. :) В нём есть дочерние виджеты (ну или лайоуты..). И хочется, что бы, когда я перерисовываю дочерний виджет (допустим вывожу полупрозрачный QImage), данный QImage рисовался поверх содержания отцовского виджета, которое является графическим. Ну т.е. полупрозрачная картинка поверх просто картинки( которая отображается в backgroundWidget::painterEvent.) Спасибо :)
P.S. только читаю книгу по Qt.. до каскадных стилей ещё не дошёл ) Название: Re: содержание родительского виджета Отправлено: SABROG от Октябрь 19, 2009, 12:10 Нарисуй в пейнте как ты себе это представляешь, из описания я ничего не понял.
Название: Re: содержание родительского виджета Отправлено: jasf от Октябрь 19, 2009, 13:23 ну вот приблизительно:
возьмём левое изображение = 1 правое = 2 предположим, что первое изображение - это просто splashscreen, хранящийся в QImage. НУ т.е. без логических элементов. За отображение данного элемента отвечает MyWidget backgroundWidget; .. MyWidget::painterEvent() { QPainter painter(this); painter.draw(image); } в последствии, я в backgroundWidget вкладываю дочерний виджет. пусть этим виджетом будет квадрат, содержащийся на 2ом рисунке (там где подкл-откл, .. Выход ). Опять же, данный квадрат (на рисунке выглядит как меню...) пусть будет являться вторым изображением, хранящимся в QImage. Так вот, я хочу во втором, дочернем виджете, отрисовать QImage с указанием альфа величины.. что-бы на выходе получил примерно то, что показано на рисунке. Т.е. смешать содержание backgroundWidget и дочернего виджета. Т.е. посути, перед тем, как произойдёт отрисовка дочернего виджета, backgroundWidget должен восстановить своё содержимое в QPainter дочернего виджета.. как то-так. Название: Re: содержание родительского виджета Отправлено: jasf от Октябрь 19, 2009, 13:33 Или вот на этом изображении лучше понятно. Тот полупрозрачный затемнённый виджет находится над списком контактов. Хоть и является полупрозрачным. А так же является виджетом. Вот как реализовать похожий функционал? :) Спасибо
Название: Re: содержание родительского виджета Отправлено: SABROG от Октябрь 19, 2009, 14:40 Типа этого (http://wiki.crossplatform.ru/index.php/%D0%A0%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%B2%D0%B5%D1%80%D1%85_%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D1%85_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%BE%D0%B2)?
Название: Re: содержание родительского виджета Отправлено: jasf от Октябрь 19, 2009, 15:06 За ссылку спасибо. Но хочется, наверное, не просто рисование "руками", а что-бы поверх был именно widget со свойствами полупрозрачности. Хотя, видимо, мне поможет qt 4.6 beta1. там нечто похожее вроде-как есть.
Название: Re: содержание родительского виджета Отправлено: Igors от Октябрь 19, 2009, 15:29 Если бы каждый кто делает полу/прозрачность "подручными средствами" просто написал бы в Qt такой feature request - то глядишь в следующей версии и имели бы что-то штатное (вместо бестолковых Crerator'ов) :)
Название: Re: содержание родительского виджета Отправлено: baka от Октябрь 19, 2009, 17:42 при рисовании дочернего виджета, попробуй в QPainter задавать Opacity
Код: QPainter painter(this); где n - от 0.0 до 1.0 получится примерно как на рисунке. ЗЫ: т.е. если я правильно понял тебе нужен полупрозрачный виджет который может находится где угодно и сквозь который видно все что под ним.(т.е. другие виджеты или рабочий стол. Название: Re: содержание родительского виджета Отправлено: SASA от Октябрь 19, 2009, 18:20 Если виджет чилдовый (т.е. имеет парента) то просто рисуй полупрозрачными :D красками.
Для топ левел виджетов используй свойство windowOpacity. Название: Re: содержание родительского виджета Отправлено: Marat(Qt) от Октябрь 19, 2009, 21:01 Вот кнопку прозрачную сделал... палитру потправил просто...
Название: Re: содержание родительского виджета Отправлено: spectre71 от Октябрь 20, 2009, 07:02 За ссылку спасибо. Но хочется, наверное, не просто рисование "руками", а что-бы поверх был именно widget со свойствами полупрозрачности. Хотя, видимо, мне поможет qt 4.6 beta1. там нечто похожее вроде-как есть. void QWidget::setWindowOpacity ( qreal level ) Название: Re: содержание родительского виджета Отправлено: jasf от Октябрь 21, 2009, 11:53 За ссылку спасибо. Но хочется, наверное, не просто рисование "руками", а что-бы поверх был именно widget со свойствами полупрозрачности. Хотя, видимо, мне поможет qt 4.6 beta1. там нечто похожее вроде-как есть. void QWidget::setWindowOpacity ( qreal level ) Вот кнопку прозрачную сделал... палитру потправил просто... вот если-бы ещё пример исходного кода :)Название: Re: содержание родительского виджета Отправлено: Marat(Qt) от Октябрь 22, 2009, 12:49 Цитировать вот если-бы ещё пример исходного кода исходного кода у меня нет... у каждого виджета есть своя палитра, я редактировал ее в дизайнере. Берем ассистант и читаем про QPalette, а еще проще прочитать у Шлее (глава 13, страница 264)... |