大家好,
以下代码:
self.painter = QtGui.QPainter(self)
self.painter.setRenderHint(QPainter.Antialiasing)
self.painter.translate(482,395)
self.painter.scale(300,300)
self.painter.save()
needle = Qt.QPolygon([QPoint(30, 0), QPoint(-30, 0), QPoint(0, 200)])
self.painter.setBrush(Qt.cyan)
self.painter.setPen(Qt.black)
self.painter.drawPolygon(needle)
self.painter.restore()导致我的Pyqt应用程序崩溃。有人知道为什么吗?它是pyuic4自动生成的我的ui_form.py文件的一部分。删除/注释掉它可以解决这个问题。是的,这是我自己写的,而不是编译器做的。
非常感谢!
发布于 2010-09-30 15:07:30
将传递给QPolygon的构造函数的列表保存在一个局部变量中。我猜一旦调用返回,这些元素就会被垃圾回收,所以当你绘制多边形时,它们就不再存在了。
points = [QPoint(30, 0), QPoint(-30, 0), QPoint(0, 200)]
needle = Qt.QPolygon(points)发布于 2010-10-09 11:45:34
因为您没有正确创建QPolygon。
QPolygon ()
QPolygon ( int size )
QPolygon ( const QPolygon & polygon )
QPolygon ( const QVector & points )
QPolygon ( const QRect & rectangle, bool closed = false )可以使用on integer、已创建的QPolygon、QVector或QRect创建多边形,也可以传递true或false来闭合多边形。
https://stackoverflow.com/questions/3828489
复制相似问题