Есть ли способ применить эффекты внутри paintEvent в Qt? - PullRequest
0 голосов
/ 29 января 2020

Я использую PySide2 для рисования моего виджета. Все работает, но в какой-то момент в моем paintEvent я хочу взять результат моей живописи, применить к нему размытие и затем скомпоновать его с оригиналом. Возможно ли это?

Я прочитал, что QGraphicsEffect применим только к виджетам, поэтому я нашел что-то вроде этого:

def applyEffectToImage(src, effect):
  scene = QtWidgets.QGraphicsScene()
  item = QtWidgets.QGraphicsPixmapItem()
  item.setPixmap(QPixmap.fromImage(src))
  item.setGraphicsEffect(effect)
  scene.addItem(item)
  res = QImage(src.size(), QImage.Format_ARGB32)
  res.fill(Qt.transparent)
  ptr = QPainter(res)
  scene.render(ptr, QRectF(), QRectF(0,0, src.width(), src.height()) )
  return res

, но даже с этим, что позволяет мне вызывать QGraphicsEffect внутри моего paintEvent, поскольку мой исходный источник - QPainter (self), как я могу преобразовать это в QImage?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...