0
Ich zeichne eine Linie, aber wie halten Sie die Linie 'jag' frei und sauber?Wie glätten gezackte Kanten auf gekrümmten Linien und Diagonalen auf Pyqt4?
Dies ist der Code, der über das Bild zieht. Hier können wir bemerken, dass das Bild voller gezackter Kanten ist.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.drawingPanel = DrawingPanel(self)
verticalLayout = QtGui.QVBoxLayout(self)
verticalLayout.addWidget(self.drawingPanel)
self.setLayout(verticalLayout)
self.resize(400, 300)
self.setWindowTitle('Review')
self.show()
class DrawingPanel(QtGui.QGraphicsView):
def __init__(self, parent):
super(DrawingPanel, self).__init__(parent)
scene = QtGui.QGraphicsScene()
self.setScene(scene)
pencil = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine)
self.scene().addLine(QtCore.QLineF(0, 0, 300, 600), pencil)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Hier gibt es einen Zoom auf das Bild:
Einige andere Fragen zu diesem Thema:
Dank. Es ist auch möglich, mehrere Sätze als: 'self.setRenderHint (QtGui.QPainter.Antialiasing); self.setRenderHint (QtGui.QPainter.TextAntialiasing); self.setRenderHint (QtGui.QPainter.SmoothPixmapTransform); self.setRenderHint (QtGui.QPainter.HighQualityAntialiasing); '? – user