首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这段在Pyqt中创建QPolygon的代码正在停止我的应用程序!帮助?

这段在Pyqt中创建QPolygon的代码正在停止我的应用程序!帮助?
EN

Stack Overflow用户
提问于 2010-09-30 15:02:36
回答 2查看 4.9K关注 0票数 2

大家好,

以下代码:

代码语言:javascript
复制
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文件的一部分。删除/注释掉它可以解决这个问题。是的,这是我自己写的,而不是编译器做的。

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-30 15:07:30

将传递给QPolygon的构造函数的列表保存在一个局部变量中。我猜一旦调用返回,这些元素就会被垃圾回收,所以当你绘制多边形时,它们就不再存在了。

代码语言:javascript
复制
points = [QPoint(30, 0), QPoint(-30, 0), QPoint(0, 200)]
needle = Qt.QPolygon(points)
票数 2
EN

Stack Overflow用户

发布于 2010-10-09 11:45:34

因为您没有正确创建QPolygon。

代码语言:javascript
复制
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来闭合多边形。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3828489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档