Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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 QwtPlot plotLayout().canvasRect()失败_Python_Qwt - Fatal编程技术网

Python QwtPlot plotLayout().canvasRect()失败

Python QwtPlot plotLayout().canvasRect()失败,python,qwt,Python,Qwt,我想用qwtplot绘制图形,就像在Matlab中一样,轴相等,这样一个圆看起来像一个圆,而不是一个椭圆 我没有找到像axis equal这样的函数,或者遗漏了一个? 所以我想写我自己的函数。因此,我需要绘图区域的大小。我想canvasRect应该给我尺寸。 当我使用QtDesigner和uic时,效果很好,我得到了值,例如: PyQt4.QtCore.qrect1458412 但是,如果我自己编程,GUI不起作用,结果是: PyQt4.QtCore.QRect 这是我的密码 import sy

我想用qwtplot绘制图形,就像在Matlab中一样,轴相等,这样一个圆看起来像一个圆,而不是一个椭圆

我没有找到像axis equal这样的函数,或者遗漏了一个? 所以我想写我自己的函数。因此,我需要绘图区域的大小。我想canvasRect应该给我尺寸。 当我使用QtDesigner和uic时,效果很好,我得到了值,例如: PyQt4.QtCore.qrect1458412

但是,如果我自己编程,GUI不起作用,结果是: PyQt4.QtCore.QRect

这是我的密码

import sys
from PyQt4 import QtCore, QtGui, Qt
import PyQt4.Qwt5 as Qwt

class mainWindow(QtGui.QDialog):
    def __init__(self, numberOfObjects, parent=None):
        QtGui.QDialog.__init__(self, parent)

        okButton = QtGui.QPushButton(self.tr("OK"))
        cancelButton = QtGui.QPushButton(self.tr("Cancel"))

        self.connect(okButton, QtCore.SIGNAL("clicked()"), self, QtCore.SLOT("accept()"))
        self.connect(cancelButton, QtCore.SIGNAL("clicked()"), self, QtCore.SLOT("reject()"))

        self.testPlot =  Qwt.QwtPlot(self) 

        buttonLayout = QtGui.QHBoxLayout()
        buttonLayout.addStretch(1)
        buttonLayout.addWidget(okButton)
        buttonLayout.addWidget(cancelButton)

        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(self.testPlot)
        mainLayout.addLayout(buttonLayout)

        self.setLayout(mainLayout)

        self.resize(450, 250)

        cr = self.testPlot.plotLayout().canvasRect()
        print cr


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    win = mainWindow(0) 
    sys.exit(win.exec_())
有人能帮我吗?
我使用Python2.7、QT4和Qwt5

我不知道Python绑定,但是Qwt 5.2提供了一个类QwtPlotRescaler,它提供了类似axis equal的特性

在Qwt 6.1中,您可以找到重新缩放器示例,该示例演示了如何使用它