2017-08-02 64 views

回答

2

如果要在小部件內繪製某些東西,則需要使用小部件的paintEvent來定義QPainter。該方法允許爲立體塗裝申報Qpainter,順便避免了對Qpainter.begin()Qpainter.end()的呼叫。

class MyWidget(QWidget): 
    def __init__(self): 
     super().__init__() 

    def paintEvent(self, event): 
     painter = QPainter(self) 
     painter.drawLine(0, 0, 100, 100) 

app = QApplication(sys.argv) 
widget = MyWidget() 
widget.show() 
sys.exit(app.exec_()) 

http://doc.qt.io/qt-5/qpainter.html#details

警告:當paintdevice是一個小部件,QPainter的只能一個的paintEvent()函數內或在一個通過的paintEvent()函數調用使用。

+0

啊,所以這就是爲什麼。謝謝! – HelloGoodbye