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

📄 browse.py

📁 使用Pygtk写的几个例子
💻 PY
字号:
#!/usr/bin/env python# This is an example of using dynamic trees (trees where nodes are only# calculated as they are needed) with pygtk.  This particular example# allows for the browsing of the variables in a module, allowing the# descent into classes and modules and other objects with a __dict__# attribute.# If this file is run straight, it will let you browse the gtk module.import pygtkpygtk.require('2.0')import gtkclass BrowseVariables(gtk.VBox):    def __init__(self, name, obj):        gtk.VBox.__init__(self)        self.set_spacing(2)        #        self.sw = gtk.ScrolledWindow()        self.sw.set_size_request(300, 200)        self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)        self.pack_start(self.sw)        self.sw.show()        #        self.disp = gtk.Entry()        self.disp.set_editable(False)        self.pack_start(self.disp, expand=False)        self.disp.show()        #        self.treestore = gtk.TreeStore(str, object)        self.tree = gtk.TreeView(self.treestore)        treeviewcolumn = gtk.TreeViewColumn('Variable',                                            gtk.CellRendererText(),                                            text=0)        self.tree.append_column(treeviewcolumn)        self.sw.add(self.tree)        self.tree.show()        #        riter = self.treestore.append(None, [name, obj])        self.treestore.append(riter, ['', None])        self.tree.connect('test-expand-row', self.expand_row_cb)        self.tree.connect('test-collapse-row', self.collapse_row_cb)        self.treeselection = self.tree.get_selection()        self.treeselection.connect('changed', self.change_selection_cb)        return    def change_selection_cb(self, treeselection):        model, iter = treeselection.get_selected()        if not iter or not self.disp:            return        key = model[iter][0]        if key == '__builtins__':            value = key        else:            value = model[iter][1]        self.disp.set_text(str(value))        return    def expand_row_cb(self, treeview, riter, path):        model = treeview.get_model()        dict = vars(model[riter][1])        if not dict:            return True        citer = model.iter_children(riter)        model.remove(citer)        keylist = dict.keys()        keylist.sort()        for key in keylist:            obj = dict[key]            i = model.append(riter, [key, obj])            try:                d = vars(obj)                if d:                    model.append(i, ['', d])            except TypeError:                pass        return False    def collapse_row_cb(self, treeview, riter, path):        model = treeview.get_model()        citer = model.iter_children(riter)        if citer:            while model.remove(citer):                pass        model.append(riter, ['', None])        return Trueclass BrowseWindow(gtk.Window):    def __init__(self, name, dict):        gtk.Window.__init__(self)        self.set_title("Browse Window")        box = gtk.VBox()        self.add(box)        box.show()        browse = BrowseVariables(name, dict)        browse.set_border_width(10)        box.pack_start(browse)        browse.show()        separator = gtk.HSeparator()        box.pack_start(separator, expand=False)        separator.show()        box2 = gtk.VBox(spacing=10)        box2.set_border_width(10)        box.pack_start(box2, expand=False)        box2.show()        button = gtk.Button(stock=gtk.STOCK_CLOSE)        box2.pack_start(button)        button.set_flags(gtk.CAN_DEFAULT)        button.grab_default()        button.show()        self.close_button = button        returnif __name__ == '__main__':    win = BrowseWindow('gtk', gtk)    win.set_title("Browse gtk")    win.connect("destroy", lambda w: gtk.main_quit())    win.connect("delete_event", lambda w,e: gtk.main_quit())    win.close_button.connect("clicked", lambda w: gtk.main_quit())    win.show()    gtk.main()

⌨️ 快捷键说明

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