PyQt Windows de forma irregular (p. Ej., Una circular sin borde / decoraciones)

¿Cómo creo una ventana de forma irregular en PyQt?

Encontré esta solución C ++ , sin embargo, no estoy seguro de cómo hacerlo en Python.

Aqui tienes:

from PyQt4 import QtGui, QtWebKit from PyQt4.QtCore import Qt, QSize class RoundWindow(QtWebKit.QWebView): def __init__(self): super(RoundWindow, self).__init__() self.initUI() def initUI(self): self.setWindowFlags(Qt.FramelessWindowHint) self.setAttribute(Qt.WA_TranslucentBackground) def sizeHint(self): return QSize(300,300) def paintEvent(self, event): qp = QtGui.QPainter() qp.begin(self) qp.setRenderHint(QtGui.QPainter.Antialiasing); qp.setPen(Qt.NoPen); qp.setBrush(QtGui.QColor(255, 0, 0, 127)); qp.drawEllipse(0, 0, 300, 300); qp.end() a = QtGui.QApplication([]) rw = RoundWindow() rw.show() a.exec_() 

Captura de pantalla

Nunca he escrito C ++ en mi vida, pero leer ese ejemplo de código no fue tan difícil. Encontrará que la mayoría de la documentación de Qt en línea está en C ++, por lo que es útil al menos poder leer.