Cómo dibujar un círculo en Python pyqt
Trabajé en este ejemplo durante varios días:
1) El código fuente C del sitio web oficial se reescribió en la versión PyQt5 del código y muchos detalles no se convirtieron
2) El ejemplo de PyQt en Internet no se puede ejecutar en absoluto
Después de superar innumerables errores y combinar los dos, finalmente pude completar un dibujo circular.
También dominé muchos conocimientos nuevos en este proceso
Puntos de conocimiento
1. Acerca del uso de puntos múltiples
poitns = [QPoint(10, 80), QPoint (20, 10), QPoint(80, 30), QPoint(90, 70)]
Consulte:
1 ?# Definir múltiples puntos 2 ?puntos = [QPoint (10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)] 3 ?# === ¡Usar puntos directamente causará un error! ========= 5 ?# 5 ?6 * elif self.shape == self.Points:7 ? pintor.drawPoints(puntos) 8 ? elif self.shape == self.Polyline:10 ? pintor.drawPolyline(puntos)11 12 ? elif self.shape == self.Polygon:13 pintor.drawPolygon(puntos, 4)14 15 ?# drawPolygon(puntos, 4)14 15 ?.16 17 ?# === en ¡Envolver los puntos en QPolygon() es correcto! =========18 ?# 18 ? .19 ? elif self.shape == self.Points:20 ? pintor.drawPoints(QPolygon(puntos))21 22 ? :23 ? pintor.drawPolyline(QPolygon(puntos))24 25 ? elif self.shape == self.Polygon:26 pintor.drawPolygon(QPolygon(puntos), 4)27 28 ?# ...QtWidgets importar *clase StockDialog( QWidget): def __init__(self, parent=None):
super(StockDialog, self).__init__(parent)
self.setWindowTitle("Dibujar varias formas con QPainter")
mainSplitter = QSplitter(Qt.Horizontal)
mainSplitter.setOpaqueResize(True)
frame = QFrame(mainSplitter)
mainLayout = QGridLayout(frame) #mainLayout.setMargin(10)
mainLayout.setSpacing(6)
label1 = QLabel("Forma:")
label2 = QLabel ("Ancho de línea de pincel:")
label3 = QLabel("Color de pincel:")
label4 = QLabel("Estilo de pincel:"
lab
el5=QLabel("Parte superior del pincel:")
label6=QLabel("Punto de conexión del pincel:")
label7=QLabel("Estilo del pincel:")
label8=QLabel("Color del pincel:")
self.shapeComboBox = QComboBox()
self.shapeComboBox.addItem("Línea", "Línea")
self.shapeComboBox.addItem("Rectangle", "Rectangle")
self.shapeComboBox..addItem('Ruta', 'Ruta')
self.shapeComboBox.addItem(' Polígono', 'Polígono')
self.shapeComboBox.addItem('Polyline', 'Polyline')
self.shapeComboBox.addItem('Arc', 'Arc')
self.shapeComboBox.addItem('Puntos', 'Puntos')
self.self.shapeComboBox.addItem('Texto', 'Texto')
self.shapeComboBox.addItem('Pixmap', 'Pixmap')
self.widthSpinBox = QSpinBox()
self.widthSpinBox.setRange(0, 20)
self.penColorFrame = QFrame()
self.penColorFrame.setAutoFillBackground(True)
self.penColorFrame.setRange(0, 20)