python gtk заполнить ListStore в TreeView

эй, я новичок, и у меня проблема, я пытаюсь создать TreeView с ListStore. ListStore должен получить список из другого класса, но, похоже, я не могу заполнить свой ListStore.

так вот код

TreeView и ListStore: labelDB = gtk.Label('База данных')

    self.storeDB = gtk.ListStore(str, str, int, str)

    rentexDB = gtk.CellRendererText()
    colDB1 = gtk.TreeViewColumn('Name', rentexDB)
    colDB2 = gtk.TreeViewColumn('URL', rentexDB)
    colDB3 = gtk.TreeViewColumn('Bitrate', rentexDB)
    colDB4 = gtk.TreeViewColumn('Format', rentexDB)

    self.fillStore()

    pageDB = gtk.TreeView(model=self.storeDB)
    pageDB.append_column(colDB1)
    pageDB.append_column(colDB2)
    pageDB.append_column(colDB3)
    pageDB.append_column(colDB4)

    showData.append_page(pageDB, labelDB)

и fillStore:

def fillStore(self):
    dataInStore = self.record.useDB()

    if dataInStore is not None:
        self.storeDB.clear()
        for row in dataInStore:
            #print row
            self.storeDB.append(row)

    return self.storeDB

когда я печатаю строку, я вижу список, который я хочу сохранить в своем ListStore, но ListStore всегда пуст

Я надеюсь, что кто-то может мне помочь, пожалуйста


person codegeschrei    schedule 26.06.2013    source источник
comment
Необходимо создать четыре файла cellrenderertext.   -  person LiuLang    schedule 26.06.2013


Ответы (1)


ниже демонстрационное приложение:

#!/usr/bin/env python3

from gi.repository import Gtk


class Demo:
    def __init__(self):
        self.window = Gtk.Window()
        self.window.set_default_size(640, 480)
        self.window.connect('delete-event', self.on_app_exit)

        scrolledwindow = Gtk.ScrolledWindow()
        self.window.add(scrolledwindow)

        self.liststore = Gtk.ListStore(str, str, int, str)

        # You need to use self.fillStore() instead.
        self.liststore.append(['Debian', 'i386', 0, 'ok'])
        self.liststore.append(['Fedora', 'amd64', 1, 'ok'])
        self.liststore.append(['Ubuntu', 'i386', 2, 'ok'])

        treeview = Gtk.TreeView(model=self.liststore)
        scrolledwindow.add(treeview)

        names = ('Name', 'URL', 'Bitrate', 'Format')
        for i in range(4):
            renderer_text = Gtk.CellRendererText()
            column = Gtk.TreeViewColumn(names[i], renderer_text, text=i)
            treeview.append_column(column)

    def fillStore(self):
        pass

    def run(self):
        self.window.show_all()
        Gtk.main()

    def on_app_exit(self, widget, event=None):
        Gtk.main_quit()


if __name__ == '__main__':
    demo = Demo()
    demo.run()
person LiuLang    schedule 26.06.2013
comment
@LiuLang, вы знаете, как это сделать с графическим интерфейсом, созданным с помощью GtkBuilder & Glade? - person Avinash R; 15.07.2013