2009-10-21 2 views
5

Dans l'interface tkinter de python, existe-t-il une option de configuration qui modifiera une étiquette de sorte que vous puissiez sélectionner le texte dans l'étiquette, puis le copier dans le presse-papiers?Dans tkinter de python, comment puis-je créer une étiquette de sorte que vous puissiez sélectionner le texte avec la souris?

EDIT:

Comment voulez-vous modifier cette "Bonjour tout le monde" app pour fournir cette fonctionnalité?

from Tkinter import * 

master = Tk() 

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

mainloop() 

Répondre

9

La meilleure façon est d'utiliser un widget texte désactivé avec une hauteur de 1 ligne:

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() 

Vous pouvez utiliser un widget entrée d'une manière similaire.

+1

Pour moi, 'state =" disabled "' ne me laisse même pas sélectionner le texte à copier. Le mettre à 'state =" readonly "' réellement travaillé. – AneesAhmed777

4

a fait quelques modifications au code ci-dessus:

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() 

Le relief doit être plat pour qu'il ressemble à une partie ordinaire de l'écran. :)

Questions connexes