コード例 #1
0
ファイル: view.py プロジェクト: placidrage/filelisting
    def __init__(self, list_model=None, column_idx=()):
        if list_model is None:
            list_model = FileListModel()
        super(FileListView, self).__init__(list_model)

        # create the TreeViewColumns to display the data
        column_names = list_model.get_column_names()
        tvcolumn = []

        cellpb = Gtk.CellRendererPixbuf()
        tvcolumn.append(Gtk.TreeViewColumn(column_names[0], cellpb, pixbuf=0))

        cell = Gtk.CellRendererText()
        tvcolumn[0].pack_start(cell, False)
        tvcolumn[0].add_attribute(cell, 'text', column_names.index("Name") + 1)

        self.append_column(tvcolumn[0])

        if not column_idx:
            column_idx = range(1, len(column_names))
        for n in column_idx:
            cell = Gtk.CellRendererText()
            if n == 1:
                cell.set_property('xalign', 1.0)

            tvcolumn.append(Gtk.TreeViewColumn(
                column_names[n],
                cell, text=n+1
            ))

            self.append_column(tvcolumn[-1])
コード例 #2
0
ファイル: filelisting.py プロジェクト: placidrage/filelisting
class GenericTreeModelExample:
    def __init__(self):
        # Create a new window
        self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL)
        self.window.set_size_request(300, 200)
        self.window.connect("destroy", Gtk.main_quit)

        self.listmodel = FileListModel()

        # create the TreeView
        self.treeview = Gtk.TreeView.new_with_model(self.listmodel)

        # create the TreeViewColumns to display the data
        column_names = self.listmodel.get_column_names()
        self.tvcolumn = [None] * len(column_names)

        cellpb = Gtk.CellRendererPixbuf()
        self.tvcolumn[0] = Gtk.TreeViewColumn(column_names[0],
                                              cellpb, pixbuf=0)

        cell = Gtk.CellRendererText()
        self.tvcolumn[0].pack_start(cell, False)
        self.tvcolumn[0].add_attribute(cell, 'text', 1)
        self.treeview.append_column(self.tvcolumn[0])

        for n in range(1, len(column_names)):
            cell = Gtk.CellRendererText()
            if n == 1:
                cell.set_property('xalign', 1.0)
            self.tvcolumn[n] = Gtk.TreeViewColumn(column_names[n],
                                                  cell, text=n+1)
            self.treeview.append_column(self.tvcolumn[n])

        self.treeview.connect('row-activated', self.open_file)

        self.scrolledwindow = Gtk.ScrolledWindow()
        self.scrolledwindow.add(self.treeview)
        self.window.add(self.scrolledwindow)
        self.treeview.set_model(self.listmodel)
        self.window.set_title(self.listmodel.dirname)
        self.window.show_all()

    def open_file(self, treeview, tree_path, column):
        model = treeview.get_model()
        if model.is_folder(tree_path):
            pathname = model.get_pathname(tree_path)
            new_model = FileListModel(pathname)
            self.window.set_title(new_model.dirname)
            treeview.set_model(new_model)