-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear all,

The attached python script works fine when I call it as 'python
test.py', i.e. the cells of the tables are filled with text
(python.jpg; Python 2.7.3, Debian testing).

When I run the script from coot (0.7, svn 4459, built on this
machine), the cells remain empty (coot.jpg).

Since Berhard Lohkamp told me he cannot reproduce the error I was
wondering if anyone could point out how to debug this problem.

A start would be a hint as to how figure out which libraries and
packages are involved and how to differentiate between the once found
within the coot installation and those which are system installed (and
thus make the code work when called as 'python test.py').

I appreciate any comment, including ways how to create such a table
view in a different (more stable/ reliable) way.

Best,
Tim

- -- 
- --
Dr Tim Gruene
Institut fuer anorganische Chemie
Tammannstr. 4
D-37077 Goettingen

GPG Key ID = A46BEE1A

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFQ/7oiUxlJ7aRr7hoRAgqlAJ99xc2N0l5mLSnW3gK4gL1nYwjAsQCfWoqG
CKcsVZBPQ6f6Y3dreoqUZcA=
=GTab
-----END PGP SIGNATURE-----

<<attachment: coot.jpg>>

<<attachment: python.jpg>>

#!/usr/bin/env python

# example treeviewcolumn.py

import pygtk
import gtk

print "Howdy"

class TreeViewColumnExample:

    # close the window and quit
    def delete_event(self, widget, event, data=None):
        gtk.main_quit()
        return False

    def make_pb(self, tvcolumn, cell, model, iter):
        stock = model.get_value(iter, 1)
        pb = self.treeview.render_icon(stock, gtk.ICON_SIZE_MENU, None)
        cell.set_property('pixbuf', pb)
        return

    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(200, 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
        self.treeview.append_column(self.tvcolumn)
        self.treeview.append_column(self.tvcolumn1)

        # 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')


        # 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)
        else:
            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,
                                      cell_background_set=3)

        # make treeview searchable
        self.treeview.set_search_column(0)

        # Allow sorting on the column
        self.tvcolumn.set_sort_column_id(0)

        # Allow drag and drop reordering of rows
        self.treeview.set_reorderable(True)

        self.window.add(self.treeview)

        self.window.show_all()

def main():
    gtk.main()

if __name__ == "__main__":
    tvcexample = TreeViewColumnExample()
    main()
    
"""
### knuspr = Knuspr()
coot_knuspr = coot_menubar_menu ("_Test")
knuspr_menuitem = gtk.MenuItem("Knuspr Nucleic Acid Tracing")

coot_knuspr.append(knuspr_menuitem)
#knuspr_menuitem.destroy()
knuspr_menuitem.show()
knuspr_menuitem.connect("activate", TreeViewColumnExample )"""

Reply via email to