For a Tkinter.Text
or Tkinter.Entry
widget, you can use:
content = text.selection_get()
Interactive example of getting selected text both from an Entry and from a Text widgets in the Python console:
>>> import Tkinter
>>> w = Tkinter.Tk()
>>> e = Tkinter.Entry(w)
>>> e.pack()
>>> t = Tkinter.Text(w)
>>> t.pack()
#(scribble at the widgets in the created window, and select text in the Entry)
>>> e.selection_get()
'1234'
#(select text)
>>> t.selection_get()
'1234'
>>>
According to Bryan Oakley's comment:
selection_get
is a generic widget method available to all widgets. It does not always get the selected string from a Text widget. It might, but it's not guaranteed. What it does is get what's called the "X" selection (from tk's X11 roots). If you set exportselection
to False for the Text widget, selection_get
will fail to work. So your suggest will work in the normal case, but not in all cases.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…