2013-01-15 13 views

Odpowiedz

8

Proszę bardzo:

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_() 

Screenshot

Nigdy napisany w C++ w moim życiu, ale czytając ten przykład kodu nie było takie trudne. Przekonasz się, że większość dokumentacji Qt online znajduje się w C++, więc przydaje się przynajmniej możliwość czytania.

+0

Świetny kawałek kodu. Ale pytanie dotyczy kształtu _regularnego_. Jaki powinien być kod, jeśli chcę użyć niestandardowego pliku PNG z przezroczystością jako informacji o kształcie? – Tim