pyqt - 无法显示 QGraphicsEllipseItem()
问题描述
我似乎无法让 QGraphicsEllipseItem 出现在我的视图中。我正在尝试将它与 QGraphicsLineItem 结合使用:
# Instantiate the line object:
self.profileLine = QGraphicsLineItem()
self.profileLine.setPen(QPen(Qt.yellow, 1.0))
self.profileLine.setLine(self.StartX, self.StartY, self.StopX, self.StopY)
self.scene.addItem(self.profileLine)
# Instantiate the circle:
self.profileStopHandle = QGraphicsEllipseItem()
self.profileStopHandle.setPen(QPen(Qt.yellow, 1.0))
self.profileStopHandle.setRect(self.StopX, self.StopY, 50, 50)
self.scene.addItem(self.profileStopHandle)
稍后,在我的鼠标移动事件中,我确定当前鼠标坐标,将它们分配给 StopX/StopY 并重新绘制从起点到新停止点的线,并在新停止点周围绘制椭圆:
self.profileLine.setLine(self.StartX, self.StartY, self.StopX, self.StopY)
self.profileStopHandle.setPos(self.StopX, self.StopY)
这条线显示得很好并且表现得恰到好处,但无论如何我似乎都无法画出椭圆。我知道我传递给它的点坐标是正确的,因为它们与我用于直线的点坐标相同。椭圆永远不会出现,就好像它从来没有被创建过一样。我在这里做错了什么(它必须是非常基本的东西)?先感谢您。
解决方案
问题是 Z 值(业余错误)。我把椭圆带到了前景,现在它是可见的:
self.profileStopHandle.setZValue(self.sceneImage.zValue() + 1.0)
推荐阅读
- android - 错误:无法访问 android.support.v7.app.ActionBarActivity 的 ActionBarActivity 类文件未找到
- php - 编码/解码 json 给我所有数字的随机小数
- c - 哪个内核函数调用了 timer_settime() 和在用户空间中实现的定时器处理程序?
- javascript - 反应中的非组件类
- coded-ui-tests - 如何在codede ui中获取表的列数和行数?
- wordpress - 如何在 Laravel 中使用 Corcel
- batch-file - 如何将封面艺术添加到 MP4?
- c++ - 为什么 C++ 禁止对 final 类进行私有继承?
- javascript - Google Apps 脚本:将错误传递到模板化 HTML
- apache-spark - 在纱线上使用火花流进行动态分配,而不是缩小执行程序