Bugzy
Так как всё-таки отрисовать график matplotlib в элемент Drawing Area размещенный на готовой форме сделанной в Glade? Пол дня мучаюсь.
Создавать Drawing Area в Glade ненужно. Необходимо оставить пустую область (ячейку) в контейнере (VBox, HBox или Table/Grid), а в коде потом создавать объект и заполнять графиком. Вот пример:
# Отрисовка функции
def draw_fun ():
fun = Figure ()
fun.set_facecolor ('#edeceb')
ax = fun.add_subplot (111)
ax.set_title ('F = th (t)')
ax.grid (True)
canvas = FigureCanvas (fun) # DrawingArea
canvas.set_size_request (1440, 240)
canvas.show ()
graphview = main.wTree.get_widget ("table1")
graphview.attach (canvas, 0, 3, 0, 1)
ax.plot (main.t, main.F, 'r')
ax.step (main.x, main.Xchange, where='post')
ax.set_xbound (lower=0, upper=64)
ax.set_ybound (lower=0, upper=1.05)
ax.set_xlim (xmin=0, xmax=64)
ax.set_xticklabels ('')
main - экземпляр класса App, например.
class App:
"""Основной интерфейс"""
# Constructor
def __init__ (self):
# Set the Glade file
self.gladefile = "../GUI/main.glade"
self.wTree = gtk.glade.XML (self.gladefile)
...