2009-10-21 3 views
5

Gibt es in pythons tkinter-Schnittstelle eine Konfigurationsoption, die ein Label so ändert, dass Sie den Text im Label auswählen und dann in die Zwischenablage kopieren können?Wie kann ich in Pythons Tkinter ein Label erstellen, so dass Sie den Text mit der Maus auswählen können?

EDIT:

Wie würden Sie ändern diese "Hallo Welt" App eine solche Funktionalität zu bieten?

from Tkinter import * 

master = Tk() 

w = Label(master, text="Hello, world!") 
w.pack() 

mainloop() 

Antwort

9

Der einfachste Weg ist einen behinderten Text-Widget mit einer Höhe von 1 Zeile zu verwenden:

from Tkinter import * 

master = Tk() 

w = Text(master, height=1, borderwidth=0) 
w.insert(1.0, "Hello, world!") 
w.pack() 

w.configure(state="disabled") 

# if tkinter is 8.5 or above you'll want the selection background 
# to appear like it does when the widget is activated 
# comment this out for older versions of Tkinter 
w.configure(inactiveselectbackground=w.cget("selectbackground")) 

mainloop() 

Sie einen Eintrag Widget in ähnlicher Weise nutzen könnten.

+1

Für mich, 'State =" deaktiviert "' lässt mich nicht sogar Text kopieren. Die Einstellung auf 'state =" readonly "' hat tatsächlich funktioniert. – AneesAhmed777

4

einige Änderungen an den obigen Code gemacht:

from tkinter import * 

master = Tk() 

w = Text(master, height=1) 
w.insert(1.0, "Hello, world!") 
w.pack() 



# if tkinter is 8.5 or above you'll want the selection background 
# to appear like it does when the widget is activated 
# comment this out for older versions of Tkinter 
w.configure(bg=master.cget('bg'), relief=FLAT) 

w.configure(state="disabled") 

mainloop() 

Die Entlastung muss flach sein, um für sie wie ein normaler Teil der Anzeige zu suchen. :)