2016-03-25 3 views
0

я создал в QtDesigner это QDialog:Рисование в Matplotlib виджет в QtDesigner

enter image description here

Я хотел бы знать, как я могу сделать что-то в этом Matplotlib виджет, который я поставил там. Я имею в виду, если я пишу код, чтобы создать Matplotlib фигуру без Qt Designer, я могу написать что-то вроде:

self.figure_canvas = FigureCanvas(Figure()) 

self.axes = self.figure_canvas.figure.add_subplot(111) 

x = np.arange(0,5,0.5) 
y = np.sin(x) 

, а затем рисовать делает:

ax.plot(x,y) или self.axes.plot(x,y)

Как я могу получить доступ к этому виджету что-то нарисовать? Надеюсь, ты поможешь мне.

+0

Вы хотите добавить 'FigureCanvas' в виджет, который на основе скриншота должны быть доступны в вашем классе' QMainWindow' как 'self.matplotlibwidget'. Затем вы можете вызвать 'self.matplotlibwidget.addWidget (self.figure_canvas)' – Suever

+0

Спасибо за ваш ответ. Я попытался сделать это раньше, и я получаю сообщение об ошибке: «У объекта matplotlibwidget нет атрибута addwidget». –

+1

О, хорошо, поэтому у вас уже есть виджет. Извините, неправильно прочитайте это. Вы должны просто использовать виджет непосредственно для оси. 'self.matplotlibwidget.axes.plot (x, y)' – Suever

ответ

1

На основании полученного скриншота, кажется, что MatplotlibWidget должен быть доступен как self.matplotlibwidget из вашего класса QMainWindow. Это из-за значения, указанного в столбце «Объект» объекта Inspector.

Вы можете использовать этот объект напрямую, чтобы добавить графики в свой графический интерфейс.

self.matplotlibwidget.axes.plot(x, y) 
Смежные вопросы