Вопрос

I executed this program :

#!/usr/bin/env python

import gtk

class CellRenderer:
    def __init__(self):
        window = gtk.Window()
        window.set_default_size(200,200)

        liststore = gtk.ListStore(str, str)
        liststore.append(["Fedora","http://fedoraproject.org"])
        liststore.append(["Slackware","http://www.slackware.com"])
        liststore.append(["Sidux","http://sidux.com"])

        treeview = gtk.TreeView(liststore)
        column_text = gtk.TreeViewColumn("Distributions")
        column_sample= gtk.TreeViewColumn("Links")
        treeview.append_column(column_text)
        treeview.append_column(column_sample)

        cellrenderer_text = gtk.CellRendererText()
        column_text.pack_start(cellrenderer_text,False)
        column_text.add_attribute(cellrenderer_text,"text",0)

        cellrenderer_sample = gtk.CellRendererText()
        column_sample.pack_start(cellrenderer_sample, False)
        column_sample.add_attribute(cellrenderer_sample,"text", 0)

        window.connect("destroy", lambda q : gtk.main_quit())
        window.add(treeview)
        window.show_all()

CellRenderer()
gtk.main()

The resultant window I obtained is this :

enter image description here

As you may have noticed, the lists appended to liststore had links in the second index.Why weren't any of those links displayed in the second column?

Это было полезно?

Решение

You are referring to same index at

column_sample.add_attribute(cellrenderer_sample,"text", 0)

change it to

column_sample.add_attribute(cellrenderer_sample,"text", 1)

Full file.

import gtk

class CellRenderer:
    def __init__(self):
       window = gtk.Window()
       window.set_default_size(200,200)

       liststore = gtk.ListStore(str, str)
       liststore.append(["Fedora","http://fedoraproject.org"])
       liststore.append(["Slackware","http://www.slackware.com"])
       liststore.append(["Sidux","http://sidux.com"])

       treeview = gtk.TreeView(liststore)
       column_text = gtk.TreeViewColumn("Distributions")
       column_sample= gtk.TreeViewColumn("Links")
       treeview.append_column(column_text)
       treeview.append_column(column_sample)

       cellrenderer_text = gtk.CellRendererText()
       column_text.pack_start(cellrenderer_text,False)
       column_text.add_attribute(cellrenderer_text,"text",0)

       cellrenderer_sample = gtk.CellRendererText()
       column_sample.pack_start(cellrenderer_sample, False)
       column_sample.add_attribute(cellrenderer_sample,"text", 1)

       window.connect("destroy", lambda q : gtk.main_quit())
       window.add(treeview)
       window.show_all()

CellRenderer()
gtk.main()
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top