在QWidget窗口显示一个半圆线 重新实现事件函数paintEvent(),设置辐射渐变画刷、设置画笔;
时间: 2023-11-27 10:49:29 浏览: 223
子QWidget上画图
可以按照下面的代码实现在QWidget窗口中显示一个半圆线:
```python
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QBrush, QPen, QRadialGradient
from PyQt5.QtCore import Qt
import sys
class HalfCircle(QWidget):
def __init__(self):
super().__init__()
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
painter.setBrush(QBrush(QRadialGradient(self.width() / 2, self.height() / 2, self.width() / 2)))
painter.setPen(QPen(Qt.NoPen))
gradient = QRadialGradient(self.width() / 2, self.height() / 2, self.width() / 2)
gradient.setColorAt(0, Qt.white)
gradient.setColorAt(0.5, Qt.white)
gradient.setColorAt(1, Qt.black)
painter.setBrush(QBrush(gradient))
painter.drawPie(0, 0, self.width(), self.height(), 16 * 90, 16 * 180)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = HalfCircle()
ex.setGeometry(300, 300, 300, 300)
ex.show()
sys.exit(app.exec_())
```
在paintEvent()函数中,我们首先创建了一个QPainter对象,并设置抗锯齿选项。然后创建一个QRadialGradient对象作为画刷,设置画刷颜色渐变。接着,我们创建另一个QRadialGradient对象,设置圆心和半径,设置颜色渐变,并将其设置为画刷。最后,我们使用drawPie()函数绘制一个半圆线。
阅读全文