qt qpainter画同心扇形
时间: 2023-11-20 10:59:42 浏览: 191
以下是使用Qt QPainter绘制同心扇形的示例代码:
```python
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QBrush, QColor
from PyQt5.QtCore import Qt
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 350, 350)
self.setWindowTitle('同心扇形')
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
self.draw_concentric_sector(qp)
qp.end()
def draw_concentric_sector(self, qp):
brush = QBrush(Qt.SolidPattern)
brush.setColor(QColor(255, 0, 0))
qp.setBrush(brush)
# 绘制最外层扇形
qp.drawPie(50, 50, 250, 250, 0 * 16, 60 * 16)
brush.setColor(QColor(0, 255, 0))
qp.setBrush(brush)
# 绘制第二层扇形
qp.drawPie(75, 75, 200, 200, 0 * 16, 60 * 16)
brush.setColor(QColor(0, 0, 255))
qp.setBrush(brush)
# 绘制最内层扇形
qp.drawPie(100, 100, 150, 150, 0 * 16, 60 * 16)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个名为Example的QWidget子类,并在其paintEvent()方法中使用QPainter绘制同心扇形。我们使用QBrush设置扇形的颜色,并使用QPainter的drawPie()方法绘制扇形。我们绘制了三个扇形,每个扇形的大小和位置都不同,但它们的中心点是相同的,因此它们是同心的。
阅读全文