我想用qwtplot绘制数字,就像Matlab中的轴一样,这样圆圈看起来就像一个圆圈而不像椭圆。
我没有找到类似"轴等于"的功能,或者错过了一个?
所以我想写自己的功能。因此我需要绘图区域的大小。我认为" ployLayout()。canvasRect()"应该给我这么大的。
当我使用QtDesigner和uic时,它工作正常,我得到的值,例如:
PyQt4.QtCore.QRect(11,0,458,412)
但是,如果我自己编程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_())
任何人都可以帮助我吗? 我使用Python 2.7,QT4和Qwt5。
答案 0 :(得分:0)
不了解Python绑定,但Qwt 5.2提供了一个类QwtPlotRescaler,提供类似“轴相等”功能的东西。
在Qwt 6.1中,您可以找到重新缩放器示例,其中显示了如何使用它。