Hellow. How can i draw smth like figure on pic using the qpainter path ? Does anybody have some code examples?
Asked
Active
Viewed 1,114 times
1 Answers
0
Bézier curve is a cubic line. Bézier curve in PyQt5 can be created with QPainterPath. A painter path is an object composed of a number of graphical building blocks, such as rectangles, ellipses, lines, and curves.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode PyQt5 tutorial
This program draws a Bézier curve with
QPainterPath.
Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QPainterPath
from PyQt5.QtCore import Qt
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 380, 250)
self.setWindowTitle('Bézier curve')
self.show()
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
qp.setRenderHint(QPainter.Antialiasing)
self.drawBezierCurve(qp)
qp.end()
def drawBezierCurve(self, qp):
path = QPainterPath()
path.moveTo(30, 30)
path.cubicTo(30, 30, 200, 350, 350, 30)
path.addEllipse(90, 30, 200, 70) # +++
qp.drawPath(path)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

S. Nick
- 12,879
- 8
- 25
- 33
-
thx, but what about using painter path to draw difficult figures (composed of rectangles, circles and others), not the Bezier curve. I've red the docs, but didn't managed to do it bymyself ( i need some kind of a truncated ellipse, should i use this curve ? – V.Nosov May 31 '18 at 16:57
-
Draw what you need. I added the ellipse. – S. Nick May 31 '18 at 17:44