crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Ещё раз про прозрачность виджетов
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kwisp Дата 24.3.2010, 11:03
  Gluck,
Цитата(Gluck @ 19.2.2010, 12:46) *
Но всё-таки нужно, чтобы под виджетом просвечивал activeX'ный виджет...

по-моему это не возможно.
точно так же ка невозмоно сделать полупрозрачность поверх идущего видео.
molchanoviv Дата 24.3.2010, 10:35
  Не совсем понял, но может тебе нужно вызвать setIcon а затем setFlat? Тогда будет отображаться только иконка.
Litkevich Yuriy Дата 23.3.2010, 23:16
 
Цитата(Гость_Гость_* @ 24.3.2010, 1:51) *
А может подскажите как сделать прозрачной кнопку, чтобы видна была только иконка?
может проще положить иконку в QLineEdit?
Гость Дата 23.3.2010, 22:51
  А может подскажите как сделать прозрачной кнопку, чтобы видна была только иконка?
Gluck Дата 19.2.2010, 12:46
 
Цитата(Rocky @ 18.2.2010, 21:40) *
Когда в paintEvent стоял вызов Qpainter::eraseRect(...)

Попробовал вставить туда eraseRect. В результате оно закрасило виджет (который должен быть прозрачным) уветом фона (сереньким непрозрачным), и поверх уже с прозрачностью нарисовалось то, что надо. Но всё-таки нужно, чтобы под виджетом просвечивал activeX'ный виджет...
Rocky Дата 18.2.2010, 21:40
  Я вот щас как-то добился эффекта полной прозрачности дочернего виджета так. Переопределил обработчик paintEvent в классе, производном от этого виджета. Изначально виджету ставился styleSheet с градиентной заливкой фона с прозрачностью. Когда в paintEvent стоял вызов Qpainter::eraseRect(...), тот фон, который задавал StyleSheet рисовался нормально. А когда я попробовал убрать вызов eraseRect, виджет вообще как-будто исчез. Т.е. я могу на нем рисовать, и это все видно. Но сам он полностью прозрачный. Правда ActiveX-виджетов я не использую.
Gluck Дата 18.2.2010, 14:33
 
Цитата(Elfinit @ 17.2.2010, 17:02) *
setStyleSheet("backround:none;");

Так тоже не работает...
Elfinit Дата 17.2.2010, 17:02
  не,
setStyleSheet("backround:none;");


Кстати, несколько похожие глюки были, когда GraphicsView рисовался через QGLWidget. Фон очень уж странно перерисоывался, прозрачность я даже побоялся включать)
Gluck Дата 17.2.2010, 16:51
 
Цитата(Elfinit @ 17.2.2010, 16:38) *
попробуй background: none

В смысле setBackgroundRole( QPalette::NoRole ); ? Ничего не меняется.
В документации написано, что прозрачность виджетов должна работать автоматически (из-за двойной буферизации). И она на практике работает, но не поверх ActiveX компонента (т.е., если ActiveX виджет неного сместить, чтобы прозрачный виджет налезал на него не полностью, то видно, что там, где нет activeX'ного виджета, прозрачность есть).
Elfinit Дата 17.2.2010, 16:38
  Ради эксперимента попробуй background: none
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 14:08