I am trying to get to grips with treeviews in pygtk/gtk and am stuck on setting the alignment of the columns.

No matter what I try I cannot change the alignment[IMG]http://ubuntuforums.org/images/smilies/eusa_wall.gif[/IMG]

Here is the code I found on the web which I am using to change different lines to see the effect and thus learn how they work. However I added the line self.cell1.set_property('alignment', pango.ALIGN_CENTER) and it makes no difference. I have tried right align too with no joy!

Can anyone help me please?

def __init__(self):

        # Create a new window

        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)

        self.window.set_title("TreeViewColumn Example")

        self.window.set_size_request(400, 200)

        self.window.connect("delete_event", self.delete_event)

        # create a liststore with one string column to use as the model

        self.liststore = gtk.ListStore(str, str, str, 'gboolean')

        # create the TreeView using liststore

        self.treeview = gtk.TreeView(self.liststore)

        # create the TreeViewColumns to display the data

        self.tvcolumn = gtk.TreeViewColumn('Pixbuf and Text')

        self.tvcolumn1 = gtk.TreeViewColumn('Text Only')

        # add a row with text and a stock item - color strings for

        # the background

        self.liststore.append(['Open', gtk.STOCK_OPEN, 'Open a File', True])

        self.liststore.append(['New', gtk.STOCK_NEW, 'New File', True])

        self.liststore.append(['Print', gtk.STOCK_PRINT, 'Print File', False])

        # add columns to treeview



        # create a CellRenderers to render the data

        self.cellpb = gtk.CellRendererPixbuf()

        self.cell = gtk.CellRendererText()

        self.cell1 = gtk.CellRendererText()

        # set background color property

        self.cellpb.set_property('cell-background', 'yellow')

        self.cell.set_property('cell-background', 'cyan')

        self.cell1.set_property('cell-background', 'pink')

	self.cell1.set_property('alignment', pango.ALIGN_CENTER)

        # add the cells to the columns - 2 in the first

        self.tvcolumn.pack_start(self.cellpb, False)

        self.tvcolumn.pack_start(self.cell, True)

        self.tvcolumn1.pack_start(self.cell1, True)

        # set the cell attributes to the appropriate liststore column

        # GTK+ 2.0 doesn't support the "stock_id" property

        if gtk.gtk_version[1] < 2:

            self.tvcolumn.set_cell_data_func(self.cellpb, self.make_pb)


            self.tvcolumn.set_attributes(self.cellpb, stock_id=1)

        self.tvcolumn.set_attributes(self.cell, text=0)

        self.tvcolumn1.set_attributes(self.cell1, text=2,


        # make treeview searchable


        # Allow sorting on the column


        # Allow drag and drop reordering of rows



10 Years
Discussion Span
Last Post by pachjo

What is pygtk/gtk and what is is it used for?
Also, what is a treeview?

If you don't know then you wont be able to help me.:confused:


Thanks for your kind answer. I took the liberty to check
all I can say is "ouch!", that is one complex thing! No wonder you are lost!

:sad: hey, no offence intended.....

I just presumed that if you did not know what they were, you would know the answer.

And yep....it is making my head hurt!

Stupid thing is I could have had the application finished now in MS but as I only use Linux now at home want to do it in python. Needless to say I am less than impressed that it has taken me days now of searching and am still no nearer the answer. Also I dont seem to get any response from other forums either.

I can only guess this is something python/pygtk/gtk just cant do even though the sparse help suggests otherwise:eek:

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.