Я столкнулся с странным угловым футляром при попытке визуализировать полностью прозрачный виджет в PySide
.Полностью прозрачная маска -> полностью непрозрачный виджет
Если я звоню setMask
с QBitmap
, который заполнен Qt.color0
, это делает виджет полностью непрозрачным (а не полностью прозрачным, как и следовало ожидать).
Ввод одного пикселя Qt.color
приводит к ожидаемому поведению: виджет становится полностью прозрачным, кроме этого одиночного пикселя.
Ниже приведен минимальный пример. Изменение переменной single_pixel
на True
заполняет верхний левый пиксель, что заставляет маску начать работать как ожидалось.
Любые идеи, что здесь происходит?
import sys
from PySide import QtCore, QtGui
app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()
widget.resize(200, 200)
widget.show()
bitmap = QtGui.QBitmap(widget.size())
bitmap.clear()
single_pixel = False
if single_pixel:
painter = QtGui.QPainter()
painter.begin(bitmap)
painter.setPen(QtCore.Qt.color1)
painter.drawPoint(0,0)
painter.end()
widget.setMask(bitmap)
sys.exit(app.exec_())