Tkinter and TableList - Configure the Temporary Embedded Widgets

lee.walczak at gmail.com lee.walczak at gmail.com
Tue Aug 19 18:02:02 EDT 2008


I actually post a topic relating to my problem here:

(http://groups.google.co.uk/group/comp.lang.python/browse_thread/
thread/a073d532c4481bfe?hl=en# )

But I thought it could be useful to place an example of my problem
here aswell. This a small piece of testcode that creates a TableList.
When the cell is selected, a ComboBox Widget is used temporarily
during the editing phase. It is during this ( EditStartCmd call) that
I wish to configure the "values" of the Widget. My question is, ""How
do I do this ?""

The code below returns the error when the cell is selected. :

Traceback (most recent call last):
  File "D:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
    return self.func(*args)
  File "D:\PythonWS\TEW Test.py", line 34, in EditStartCmd
    TEW.configure(values=("This","Is","A","Test"))  # Here I "try" to
configure the Temporary Widget
AttributeError: '_tkinter.Tcl_Obj' object has no attribute 'configure'

I has also provided a normal bwidget combox box ( which I use for the
Temporary Embedded Widget). It shows the normal method of configuring
the "values" is working, just the method I assume for embedded ones it
not.

Anyone who has experience in Tkinter & Tablelist would really help me
here. It could be something really silly that I do not appreciate and
any clues would really help!

This will also be posted on http://mail.python.org/mailman/listinfo/tkinter-discuss

----------------------------------

import Tkinter
import bwidget
import tktablelist

root = Tkinter.Tk()
TestFr = Tkinter.Frame(root)
TestBox = bwidget.ComboBox(root)
TestBox.configure( values = ("1","two","4rer"))

class TableBuilder:
    def __init__(self, Frame, Titles):
        self.Table=tktablelist.TableList(Frame,
			editstartcommand=self.EditStartCmd,
            selecttype="cell",
            stretch = "all",
            width=20,
            )
        root.tk.call('tablelist::addBWidgetComboBox')
        self.Table.pack()
        self.BuildTable(Titles)

    def BuildTable(self,Titles):
        I = 0
        for Title in Titles:
            self.Table.insertcolumns("end", 0, Title)
            self.Table.columnconfigure("end",editable='yes',
editwindow="ComboBox")
            I +=1
        for row in range(10):
            self.Table.insert("end","")
            self.Table.rowconfigure("end", text=(row,row+1,row*row))

    def EditStartCmd(self, table, row, col, text):
        TEW = self.Table.editwinpath()                        # Here I
return the Temporary Widget pathname
        TEW.configure(values=("This","Is","A","Test"))  # Configure
the Temp Widget - This is wrong! what is right?

Test = TableBuilder(TestFr,['A','B','C'])
TestBox = bwidget.ComboBox(root)
TestBox.configure( text=" This Works!", values = ("1","two","4rer"))
TestFr.pack()
TestBox.pack()
Tkinter.mainloop()



More information about the Python-list mailing list