python - instalar - Dibujando un polígono en PyQt
pyqt5 python windows (1)
No estoy seguro, a qué te refieres con
en la pantalla
puede usar QPainter, para pintar muchas formas en cualquier subclase de QPaintDevice, por ejemplo, QWidget y todas las subclases.
el mínimo es establecer un lápiz para líneas y texto y un pincel para rellenos. Luego crea un polígono, establece todos los puntos de polígono y pinta en paintEvent()
:
import sys, math
from PyQt5 import QtCore, QtGui, QtWidgets
class MyWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.pen = QtGui.QPen(QtGui.QColor(0,0,0)) # set lineColor
self.pen.setWidth(3) # set lineWidth
self.brush = QtGui.QBrush(QtGui.QColor(255,255,255,255)) # set fillColor
self.polygon = self.createPoly(8,150,0) # polygon with n points, radius, angle of the first point
def createPoly(self, n, r, s):
polygon = QtGui.QPolygonF()
w = 360/n # angle per step
for i in range(n): # add the points of polygon
t = w*i + s
x = r*math.cos(math.radians(t))
y = r*math.sin(math.radians(t))
polygon.append(QtCore.QPointF(self.width()/2 +x, self.height()/2 + y))
return polygon
def paintEvent(self, event):
painter = QtGui.QPainter(self)
painter.setPen(self.pen)
painter.setBrush(self.brush)
painter.drawPolygon(self.polygon)
app = QtWidgets.QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
Fondo
Me gustaría dibujar una forma simple en la pantalla, y he seleccionado PyQt como el paquete para usar, ya que parece ser el más establecido. No estoy encerrado de ninguna manera.
Problema
Parece ser demasiado complicado dibujar una forma simple como, por ejemplo, un polígono en la pantalla. Todos los ejemplos que encuentro tratan de hacer muchas cosas adicionales y no estoy seguro de qué es realmente relevante.
Pregunta
¿Cuál es la forma mínima absoluta en PyQt de dibujar un polígono en la pantalla?
Uso la versión 5 de PyQt y la versión 3 de Python si hace alguna diferencia.