我在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()