我在PyQt4应用程序中有一个嵌入式matplotlib图。这是我根据http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_qt4.html的Qt4嵌入样本制作的绘图小部件。不幸的是,每次添加新图时,此图都会略微缩小。如果有所不同,我会在QGridLayout
中并排排列两个绘图小部件。
这种奇怪行为的原因是什么?
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MultiPlot(FigureCanvas):
def __init__(self, parent=None, width=5, height=4, dpi=100):
fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = fig.add_subplot(111)
FigureCanvas.__init__(self, fig)
self.setParent(parent)
self.setMinimumSize(300, 200)
self.setMaximumSize(600, 400)
def plot(self,x,y):
print "Plot"
self.axes.plot(x,y)
FigureCanvas.updateGeometry(self)
def changePlot(self,plotNum,x,y):
print "Change plot",plotNum
self.axes.lines[plotNum].set_data(x,y)
FigureCanvas.updateGeometry(self)
答案 0 :(得分:2)
我在小部件上使用setFixedSize
修复此问题,而不是允许布局管理器调整大小。我不明白为什么布局管理员想要在添加更多图表时缩小小部件但是问题仍然得到解决