⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtk_spreadsheet.py

📁 非原创。很好的python例子
💻 PY
字号:
#!/usr/bin/env python"""Example of embedding matplotlib in an application and interacting witha treeview to store data.  Double click on an entry to update plotdata"""import pygtkpygtk.require('2.0')import gtkfrom gtk import gdkimport matplotlibmatplotlib.use('GTKAgg')  # or 'GTK'from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas#from matplotlib.numerix import randfrom matplotlib.numerix.random_array import randomfrom matplotlib.figure import Figure    class DataManager(gtk.Window):    numRows, numCols = 20,10    #data = rand(numRows, numCols)    data = random((numRows, numCols))    def __init__(self):        gtk.Window.__init__(self)        self.set_default_size(600, 600)        self.connect('destroy', lambda win: gtk.main_quit())        self.set_title('GtkListStore demo')        self.set_border_width(8)        vbox = gtk.VBox(False, 8)        self.add(vbox)        label = gtk.Label('Double click a row to plot the data')        vbox.pack_start(label, False, False)        sw = gtk.ScrolledWindow()        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)        sw.set_policy(gtk.POLICY_NEVER,                      gtk.POLICY_AUTOMATIC)        vbox.pack_start(sw, True, True)        model = self.create_model()        self.treeview = gtk.TreeView(model)        self.treeview.set_rules_hint(True)        # matplotlib stuff        fig = Figure(figsize=(6,4))        self.canvas = FigureCanvas(fig)  # a gtk.DrawingArea        vbox.pack_start(self.canvas, True, True)        ax = fig.add_subplot(111)        self.line, = ax.plot(self.data[0,:], 'go')  # plot the first row        self.treeview.connect('row-activated', self.plot_row)        sw.add(self.treeview)        self.add_columns()        self.add_events(gdk.BUTTON_PRESS_MASK |                        gdk.KEY_PRESS_MASK|                        gdk.KEY_RELEASE_MASK)    def plot_row(self, treeview, path, view_column):        ind, = path  # get the index into data        points = self.data[ind,:]        self.line.set_ydata(points)        self.canvas.draw()    def add_columns(self):        for i in range(self.numCols):            column = gtk.TreeViewColumn('%d'%i, gtk.CellRendererText(), text=i)            self.treeview.append_column(column)    def create_model(self):        types = [float]*self.numCols        store = gtk.ListStore(*types)        for row in self.data:            store.append(row)        return store                                     manager = DataManager()manager.show_all()gtk.main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -