2014-01-15 1 views
0

축이 동등한 Matlab과 같이 qwtplot을 사용하여 그림을 그려 원형으로 원과 같이 타원처럼 보이지 않게하려고합니다.QwtPlot plotLayout(). canvasRect()가 실패합니다.

"축 평등"과 같은 기능을 찾지 못했거나 없습니까? 그래서 제 자신의 함수를 작성하고 싶습니다. 따라서 도면 영역의 크기가 필요합니다. 나는 "ployLayout(). canvasRect()"가 나에게 크기를 주어야한다고 생각한다. 내가 잘 작동 QtDesigner와 UIC를 사용하고 내가 값을 얻을 때, 예를 들면 : 나는 내 자신의 GUI를 programm에 경우
PyQt4.QtCore.QRect는 (11, 0, 458, 412)

을 그러나 않습니다이다 일을하고 결과가 없습니다 : 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_()) 

이 사람이 나를 도울 수 있습니까?
파이썬 2.7, QT4 및 Qwt5를 사용합니다.

답변

0

파이썬 바인딩에 대해 모르겠지만 Qwt 5.2는 "축 동등"기능과 같은 기능을 제공하는 QwtPlotRescaler 클래스를 제공합니다.

Qwt 6.1에서는 rescaler 예제를 사용하는 방법을 보여줍니다.