簡體   English   中英

Python-PyQt Matplotlib圖位置

[英]Python - PyQt Matplotlib plot positioning

我目前正在制作一個GUI,我想要有一些滑塊,一些按鈕和一些圖表。 我正在努力將Matplotlib圖放置在所需的位置。 該圖位於QVBoxLayout中,我嘗試將其放入Widget中沒有成功。 我希望能夠選擇情節的位置和大小

這是我現在所擁有的:

當前情節

這就是我想要的,我可以在其中定義位置和大小,以便為其他控件留出空間:

我在尋找什么,可以在其中定義位置和大小

這是基本代碼:

import sys
import numpy as np
from PyQt4 import QtGui, QtCore
# import inspect
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
import matplotlib.pyplot as plt

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        #PLOTTING
        self.figure = plt.figure()
        self.canvas = FigureCanvas(self.figure)
        self.toolbar = NavigationToolbar(self.canvas, self)
        self.plot()

        # set the layout
        layout = QtGui.QVBoxLayout()
        layout.addWidget(self.toolbar)
        layout.addWidget(self.canvas)
        self.setLayout(layout)

        #WINDOW PROPERTIES
        self.resize(800,800)
        self.setWindowTitle('Waveguide Array')
        self.setWindowIcon(QtGui.QIcon('flavicon.png'))
        self.show()

    def plot(self):
        ''' plot some random stuff '''
        data = [np.random.random() for i in range(10)]
        ax = self.figure.add_subplot(111)
        ax.hold(False)
        ax.plot(data, '*-')
        self.canvas.draw()

    # def update_plot(self):

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

謝謝您的幫助!

這是一個解決方案。 在主窗口小部件內部制作一個繪圖窗口小部件,似乎可以正常工作,並且可以使用setGeometry控制位置。

self.main_widget = QtGui.QWidget(self)
self.plot_widget = QtGui.QWidget(self.main_widget)
self.plot_widget.setGeometry(250,180,500,600)
self.figure = plt.figure()
self.plotting = FigureCanvas(self.figure)
self.plot()
plot_box = QtGui.QVBoxLayout()
plot_box.addWidget(self.plotting)
self.plot_widget.setLayout(plot_box)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM