Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt Управление прозрачностью окна [RSS Feed]

#1 Окт. 29, 2012 22:48:59

Guljaca
От:
Зарегистрирован: 2011-07-11
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt Управление прозрачностью окна

Как сделать дочернее окно прозрачным, если для родителя указан фон?
self.setWindowOpacity(0.5) работает только с родителем и влияет на все дочерние окна

Фон для родителя

pal = self.palette()
pal.setBrush(QPalette.Normal,QPalette.Window,QBrush(image))
self.setPalette(pal)

Если для дочерних окон нельзя установить прозрачность, какими путями можно достичь этого же результата?

Так можно создать прозрачное дочернее окно, но как регулировать прозрачность?
pixmap = QPixmap('fon.png')
pal = self.palette()
pal.setBrush(QPalette.Normal,QPalette.Window,QBrush(pixmap))
pal.setBrush(QPalette.Inactive,QPalette.Window,QBrush(pixmap))
self.setPalette(pal)
self.setMask(pixmap.mask())

# Так работает, но тут уже готовое изображение. Я так понимаю, можно через QColor залить фон и через маску добавить прозрачность. (В теории, я не знаю как это сделать)
image = QImage('menu/fon50.png')
image = image.scaledToWidth(w.xmax/100*60)
image = image.scaledToHeight(w.xmax/100*60)
pixmap = QPixmap(image)
pal = self.palette()
pal.setBrush(QPalette.Normal,QPalette.Window,QBrush(pixmap))
pal.setBrush(QPalette.Inactive,QPalette.Window,QBrush(pixmap))
self.setPalette(pal)
self.setMask(pixmap.mask())
self.setWindowOpacity(0.5)



Отредактировано Guljaca (Окт. 30, 2012 14:26:27)

Офлайн

  • Начало
  • » GUI
  • » PyQt Управление прозрачностью окна[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version