使用来自Gtk应用程序的matplotlib.pyplot

时间:2015-11-12 18:14:27

标签: python matplotlib gtk

我在python 2.7上实现了一个非常简单的Gtk应用程序,它所做的就是打开一个主窗口。我想要做的是打开另一个窗口,并根据用户的输入使用pyplot绘制一些数据。为了简单起见,我只是忽略处理用户输入,我只是尝试从主应用程序窗口的 init 函数中绘制一些内容。

不幸的是,这不能按预期工作。主应用程序窗口按预期打开,但plt.plot()命令中的窗口似乎已完全死亡。除非我先关闭主应用程序窗口,否则不会绘制任何内容,甚至无法关闭窗口。

非常感谢任何帮助。

以下是我尝试运行的代码示例。

from gi.repository import Gtk
import matplotlib.pyplot as plt

class MyGraphApp():    
    def __init__(self):
        self.geometry = (500, 500)
        self.main_win = self.create_window_layout()             # main window        
        self.fig = plt.figure()
        plt.plot([0,10], [10, 10])

    def destroy(self, widget, data=None):
        Gtk.main_quit()

    def main(self):
        Gtk.main()

    def create_window_layout(self):
        win = Gtk.Window(Gtk.WindowType.TOPLEVEL)
        self.main_vbox = Gtk.VBox(False, 1)
        self.main_vbox.set_border_width(1)
        win.add(self.main_vbox)
        self.main_vbox.show()

        self.headerbar = Gtk.HeaderBar(title="Main Window")
        self.headerbar.props.show_close_button = True                
        win.set_titlebar(self.headerbar)

        win.set_default_size(self.geometry[0], self.geometry[1])
        win.set_position(Gtk.WindowPosition.CENTER)
        win.connect("delete_event", self.destroy) 
        win.show_all() 

        return win

myGraphApp = MyGraphApp()
myGraphApp.main()

0 个答案:

没有答案