In Python tkinter, wie kann ich ein Etikett, so dass Sie den Text mit der Maus auswählen können?

StackOverflow https://stackoverflow.com/questions/1602106

  •  05-07-2019
  •  | 
  •  

Frage

In Python tkinter Schnittstelle gibt es eine Konfigurationsoption, die ein Label wird sich ändern, so dass Sie den Text in das Etikett auswählen und kopieren Sie sie in die Zwischenablage?

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()
War es hilfreich?

Lösung

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 können einen Eintrag Widget in ähnlicher Weise verwendet werden.

Andere Tipps

Made einige Änderungen an den obigen Code:

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, damit es wie ein normaler Teil der Anzeige zu suchen. :)

Sie können die Texte machen, die wählbar sind entweder Text oder Entry mit Ich finde wirklich beide nützlich, Text verwendet, kann sehr hilfreich sein! Hier zeige ich Ihnen einen Code Eingabe:

from tkinter import *
root = Tk()
data_string = StringVar()
data_string.set("Hello World! But, Wait!!! You Can Select Me :)")
ent = Entry(root,textvariable=data_string,fg="black",bg="white",bd=0,state="readonly")
ent.pack()
root.mainloop()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top