2017-05-30 36 views
0

窗户刚出来的空如下:为什么QPoligonF对象在pyqt4的QGraphicsScene中没有显示?

enter image description here

我能找到这个其他问题

  1. Why isn't the "rectangle" that I want to draw on my Qt widget showing up?

但我无法弄清楚如何解决矿山,因为他在使用QWidget而我正在使用QGraphicsScene

from PyQt4 import QtGui, QtCore 

class MyFrame(QtGui.QGraphicsView): 
    """ 
     Python PyQt: How can I move my widgets on the window with mouse? 
     https://stackoverflow.com/questions/12213391/python-pyqt-how-can-i-move-my-widgets-on-the-window-with-mouse 
    """ 
    def __init__(self, parent = None): 
     super(MyFrame, self).__init__(parent) 

     scene = QtGui.QGraphicsScene() 
     self.setScene(scene) 
     self.resize(400, 240) 

     # http://pyqt.sourceforge.net/Docs/PyQt4/qpen.html 
     pencil = QtGui.QPen(QtCore.Qt.black, 2) 
     pencil.setStyle(QtCore.Qt.SolidLine) 

     polygon = QtGui.QPolygonF([ QtCore.QPointF(250, 100), QtCore.QPointF(400, 250), QtCore.QPointF(300, 150) ]) 
     brush = QtGui.QBrush(QtGui.QColor(125, 125, 125, 125)) 
     scene.addPolygon(polygon, pencil, brush) 

if (__name__ == '__main__'): 
    app = QtGui.QApplication([]) 
    f = MyFrame() 
    f.show() 
    app.exec_() 

回答

1

问题是,它没有出现,但是多边形的一部分是共线的,所以多边形就成了一条线。我已经修改了第三点到QtCore.QPointF(200, 150)示出以下内容:

polygon = QtGui.QPolygonF([QtCore.QPointF(250, 100), QtCore.QPointF(400, 250), QtCore.QPointF(200, 150) ]) 

enter image description here

相关问题