We resolved it over at the comp.lang.tcl group. It turns out what Christian suggested affects what is selected when you double click a word. He later discovered a different method for producing what I want. Below is my test code that implements both of these things (tested with Python 3.4 and PyCharm).
import tkinter import tkinter.messagebox as messagebox class Creator(object): def __init__(self): root = self.root = tkinter.Tk() # Main Frame f_main = tkinter.Frame(root, borderwidth=6, relief='flat') f_main.grid(row=0, column=0, sticky='nsew') # Text widget, its font and frame f_txt = tkinter.Frame(f_main, borderwidth=2, relief="sunken") f_txt.config(width=768, height=768) f_txt.grid_propagate(False) # ensures a consistent GUI size f_txt.pack(padx=4, pady=4, side="bottom", fill="both", expand=True) my_txt = tkinter.Text(f_txt, name='t') my_txt.config(undo=True, wrap='word') my_txt.grid(row=0, column=0, sticky="nsew") self.text = my_txt # Scrollbar and config f_scroll = tkinter.Frame(root, borderwidth=4, relief="groove") f_scroll.grid(row=0, column=1, sticky='nsew') scrollbar = tkinter.Scrollbar(f_scroll, command=my_txt.yview) scrollbar.pack(side='left', fill='y', pady=2, padx=0, expand=True) my_txt.config(yscrollcommand=scrollbar.set) scrollbar.columnconfigure(0, weight=1) # Stretchable root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) f_main.columnconfigure(0, weight=1) f_main.rowconfigure(0, weight=1) f_txt.rowconfigure(0, weight=1) f_txt.columnconfigure(0, weight=1) my_txt.bind("<ButtonRelease-3>", self.test) my_txt.focus_set() def test(self, event=None): txt = str(self.text) a = "::tk::TextPrevPos {} current tcl_wordBreakBefore".format(txt) b = "::tk::TextNextPos {} current tcl_wordBreakAfter".format(txt) ind1 = self.root.tk.eval(a) ind2 = self.root.tk.eval(b) x = self.text.get(ind1, ind2) messagebox.showinfo('info', x) # =========================================================================== # start up # =========================================================================== GUI = Creator() GUI.root.tk.eval("catch {tcl_endOfWord}") GUI.root.tk.eval("catch {tcl_startOfPreviousWord}") GUI.root.tk.eval("set tcl_wordchars {[[:alnum:]']}") GUI.root.tk.eval("set tcl_nonwordchars {[^[:alnum:]']}") GUI.root.mainloop() -- https://mail.python.org/mailman/listinfo/python-list