Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ttk Treeview selection_set can't accept spaces

I'm building a gui using tkk in python and I'm having trouble with the Treeview command selection_set(). I'm trying to use it to set the default selection when my program starts but it seems that it can't accept a string with spaces in it.

tree.selection_set("Sunset Grill")

Causes:

return self.tk.call(self._w, "selection", selop, items)
_tkinter.TclError: Item Sunset not found

Can anyone give any suggestions?

like image 733
David.Pili Avatar asked Feb 21 '23 10:02

David.Pili


2 Answers

You might try the following:

tree.selection_set('"Sunset Grill"')

I'm guessing this based on the code for ttk.py and my limited understanding of Tcl. The call to tree.selection_set() calls self.selection("set", items), which in turn calls self.tk.call(self._w, "selection", selop, items) where selop is 'set' and items is the string initially passed to selection_set().

I'm not sure if the self.tk.call() is doing any massaging of the arguments before passing them to Tcl as it's a call into the _tkinter.c module and I don't know enough about the Python/C interface to grok that code. ;)

like image 69
John Gaines Jr. Avatar answered Feb 25 '23 17:02

John Gaines Jr.


try tree.selection_set(["Sunset Grill"])

like image 35
Sudhanshu Garg Avatar answered Feb 25 '23 17:02

Sudhanshu Garg