为什么QPoligonF对象没有出现在pyqt4的QGraphicsScene上?

时间:2017-05-30 03:02:23

标签: python qt pyqt pyqt4

窗口空出如下:

enter image description here

我可以找到另一个问题

  1. Why isn't the "rectangle" that I want to draw on my Qt widget showing up?
  2. 但我无法弄清楚如何修复我的,因为他在使用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 个答案:

答案 0 :(得分:1)

问题是它没有出现,但是作为多边形一部分的点是共线的,因此多边形变成一条线。我已将第三点修改为QtCore.QPointF(200, 150),显示以下内容:

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

enter image description here