为什么部分在视图之外的矩形绘制为三角形?

时间:2014-09-18 08:53:23

标签: python qt pyside qgraphicsview

我使用PySide的Python-Qt绑定,我想绘制一个场景,其中包括一个矩形,矩形不完全可见,因为视图应该只显示矩形未完全包含的场景的一部分。

这是一个最小的例子:

from PySide.QtGui import *

app = QApplication([])

scene = QGraphicsScene()
scene.addRect(0, 0, 100, 100)
view = QGraphicsView(scene)
view.setSceneRect(-60, 20, 100, 100)
view.show()

app.exec_()

我希望看到矩形的下半部分,而不是看到三角形的下半部分!

enter image description here

似乎没有考虑矩形的右下角。

三角形仅在特殊情况下出现(如示例中的特殊场景矩形),如果完整矩形可见则不会出现。

这是一个错误还是我做错了什么?可以修复吗?

我的系统:Windows 7上的Python 3.3 + PySide 1.2.2(64位)

4 个答案:

答案 0 :(得分:0)

尝试使用

绘制矩形
import pygame

pygame.draw.rect(x, y, width, length)

看看是否有效。这肯定是一个错误,所以要解决它。

答案 1 :(得分:0)

有同样的问题。如果您使用GL小部件,它会起作用:

from PySide import QtOpenGL
view.setViewport(QtOpenGL.QGLWidget())

(Windows 2.7上的Python 2.7.6,PySide 1.2.1 x64(Qt 4.8.5))

答案 2 :(得分:0)

尝试:

import pygame
from livewires import *
rectangle = rect(x, y, width, height) #note that the size is in pixels

while not keyboard.is_pressed(K_escape)
    rectangle.erase()
    rectangle.draw()
    screen.update()

答案 3 :(得分:0)

这是一个错误,并且在此期间修复,至少对于Qt和Python的某些组合。

我现在使用Windows 10,Python 3.5,PyQt5,矩形显示为矩形。

很难找到哪些版本的PySide / PyQt和Qt 4.X或5.x和Python 2.X或3.X或Windows,Linux,Mac ..这个bug存在并且不是。我没有错误输出错误,但我猜它现在可以正常使用我所拥有的错误不会成为任何人的首要任务和/或可能已经修复。