使用qpainter绘制一艘货轮
时间: 2024-01-31 19:03:16 浏览: 118
利用QPainter绘制各种图形
3星 · 编辑精心推荐
好的,以下是使用QPainter绘制一艘货轮的代码示例:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor, QBrush, QPen
class Ship(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 400, 400)
self.setWindowTitle('Ship')
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
self.drawShip(qp)
qp.end()
def drawShip(self, qp):
brush = QBrush(QColor(139, 69, 19))
pen = QPen(QColor(139, 69, 19), 2)
# 绘制船体
qp.setBrush(brush)
qp.setPen(pen)
qp.drawEllipse(50, 250, 200, 50)
qp.drawRect(50, 275, 200, 75)
qp.drawRect(150, 250, 100, 25)
# 绘制货舱
brush.setColor(QColor(255, 255, 255))
pen.setColor(QColor(0, 0, 0))
pen.setWidth(1)
qp.setBrush(brush)
qp.setPen(pen)
qp.drawRect(60, 285, 80, 50)
qp.drawRect(160, 285, 80, 50)
# 绘制船窗
brush.setColor(QColor(192, 192, 192))
qp.setBrush(brush)
qp.drawRect(70, 295, 20, 20)
qp.drawRect(110, 295, 20, 20)
qp.drawRect(170, 295, 20, 20)
qp.drawRect(210, 295, 20, 20)
# 绘制旗帜
brush.setColor(QColor(255, 0, 0))
pen.setColor(QColor(0, 0, 0))
pen.setWidth(2)
qp.setBrush(brush)
qp.setPen(pen)
qp.drawPolygon([QColor(255, 0, 0), QPoint(50, 250), QPoint(50, 200), QPoint(90, 200)])
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Ship()
ex.show()
sys.exit(app.exec_())
```
在这个示例中,我们使用QPainter绘制了一艘货轮,主要使用了QBrush和QPen等工具来设置颜色与线条样式。绘制过程中,我们首先绘制了船体,然后绘制了两个货舱和四个窗户,最后绘制了一面红旗。 最终运行程序,即可看到绘制出的货轮。
阅读全文