Я в настоящее время создаю графический интерфейс, где я хочу иметь некоторые слайдеры, некоторые кнопки и некоторые сюжеты. Я изо всех сил пытаюсь позиционировать график Matplotlib, где я его хочу. Сюжет в QVBoxLayout, и я попытался сделать это внутри Widget без успеха. Я хочу, чтобы иметь возможность выбрать расположение и размер участкаPython - PyQt Matplotlib расположение участка
Вот что я сейчас:
А вот то, что я хочу, где я могу определить положение и размер, так что я есть место для других элементов управления:
What I am looking for, where I can define position and size
Вот основной код:
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()
Спасибо за помощь!
Почему бы не использовать QGridLayout в качестве макета, добавить холст в виджет и добавить виджет в GridLayout? Просто не забудьте установить виджет, чтобы иметь максимальный размер(), который составляет примерно четверть вашего размера вашего вида, или добавить другие виджеты и убедиться, что все масштабы пропорционально. –