3
我正在創建一個簡單的PySide應用程序,它也使用MatPlotLib。然而,當我添加了圖形劃分成QFrame
,這個數字不會自動適配到框架:如何自動適合PySide QFrame中的Matplotlib圖形?
我的圖是使用下面的代碼創建:
class GraphView(gui.QWidget):
def __init__(self, name, title, graphTitle, parent = None):
super(GraphView, self).__init__(parent)
self.name = name
self.graphTitle = graphTitle
self.dpi = 100
self.fig = Figure((5.0, 3.0), dpi = self.dpi, facecolor = (1,1,1), edgecolor = (0,0,0))
self.axes = self.fig.add_subplot(111)
self.canvas = FigureCanvas(self.fig)
self.Title = gui.QLabel(self)
self.Title.setText(title)
self.layout = gui.QVBoxLayout()
self.layout.addStretch(1)
self.layout.addWidget(self.Title)
self.layout.addWidget(self.canvas)
self.setLayout(self.layout)
def UpdateGraph(self, data, title = None):
self.axes.clear()
self.axes.plot(data)
if title != None:
self.axes.set_title(title)
self.canvas.draw()
,並且已添加這樣的主要Widget:
# Create individual Widget/Frame (fftFrame)
fftFrame = gui.QFrame(self)
fftFrame.setFrameShape(gui.QFrame.StyledPanel)
self.FFTGraph = GraphView('fftFrame', 'FFT Transform:', 'FFT Transform of Signal', fftFrame)
我試過將它適配到我的代碼,但它並沒有出現工作。我會繼續嘗試並讓你知道。 – KronoS
您可以將resizeEvent添加到GraphView,但您需要存儲父級,以便您可以在resizeEvent –
期間查詢self.parent.rect()我沒有傳遞父級,因此未正確附加它到父框架。這像一個魅力。 – KronoS