Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当QGraphicsView在其尺寸之外画一条线时,如何使其增大尺寸?_Python_Qt_Pyqt4 - Fatal编程技术网

Python 当QGraphicsView在其尺寸之外画一条线时,如何使其增大尺寸?

Python 当QGraphicsView在其尺寸之外画一条线时,如何使其增大尺寸?,python,qt,pyqt4,Python,Qt,Pyqt4,我有这个屏幕: 我在上面画了一条线,这条线从黑板上伸出来: #!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI

我有这个屏幕:

我在上面画了一条线,这条线从黑板上伸出来:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        self.drawingPanel = DrawingPanel(self)

        verticalLayout = QtGui.QVBoxLayout( self )
        verticalLayout.addWidget(self.drawingPanel)

        self.setLayout( verticalLayout )
        # self.setGeometry(300, 300, 400, 300)
        self.resize( 400, 300 )

        self.setWindowTitle('Review')
        self.show()


class DrawingPanel(QtGui.QGraphicsView):

    def __init__(self, parent):
        QtGui.QGraphicsView.__init__(self, parent)
        self.setScene(QtGui.QGraphicsScene(self))
        self.setSceneRect(QtCore.QRectF(self.viewport().rect()))

        # self.setSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Maximum)

        pencil = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine)
        pencil.setStyle(QtCore.Qt.DotLine)

        self.scene().addLine(QtCore.QLineF(0, 0, 300, 600), pencil)


def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
如何使面板创建一个滚动条,并能够显示绘制的整个线条

我可以找到一些其他问题,如:


  • 我只是从代码中删除了这一行就修复了它:

    self.setSceneRect(QtCore.QRectF(self.viewport().rect()))
    


    在C++中,我使用了如下的东西:VIEW .FITIN视图(Stutial.ItMsEngIsIn StIGULD());这也可以帮助你:谢谢,但我希望面板允许滚动条。当前,图形按图中所示进行剪切。
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
            self.initUI()
    
        def initUI(self):
            self.drawingPanel = DrawingPanel(self)
    
            verticalLayout = QtGui.QVBoxLayout( self )
            verticalLayout.addWidget( self.drawingPanel )
    
            self.setLayout( verticalLayout )
            # self.setGeometry( 300, 300, 400, 300 )
            self.resize( 400, 300 )
    
            self.setWindowTitle('Review')
            self.show()
    
    
    class DrawingPanel(QtGui.QGraphicsView):
    
        def __init__( self, parent ):
            super( DrawingPanel, self ).__init__( parent )
    
            scene = QtGui.QGraphicsScene()
            self.setScene( scene )
    
            # self.setSceneRect( QtCore.QRectF( self.viewport().rect() ) )
            # self.setSizePolicy( QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Maximum )
    
            pencil = QtGui.QPen( QtCore.Qt.black, 2, QtCore.Qt.SolidLine )
            pencil.setStyle( QtCore.Qt.DotLine )
    
            self.scene().addLine( QtCore.QLineF(0, 0, 300, 600), pencil )
    
    
    def main():
    
        app = QtGui.QApplication( sys.argv )
        ex = Example()
        sys.exit( app.exec_() )
    
    
    if __name__ == '__main__':
        main()