在python的tkinter中,如何制作一个Label,以便用鼠标选择文本?

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

  •  05-07-2019
  •  | 
  •  

在python的tkinter界面中,是否有一个配置选项可以更改Label,以便您可以选择Label中的文本然后将其复制到剪贴板?

编辑:

你如何修改这个“你好世界”?应用程序提供此类功能?

from Tkinter import *

master = Tk()

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

mainloop()
有帮助吗?

解决方案

最简单的方法是使用高度为1行的禁用文本小部件:

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

您可以以类似的方式使用条目小部件。

其他提示

对上述代码进行了一些更改:

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

浮雕需要平坦,以使其看起来像显示器的普通部分。 :)

您可以使用 Text Entry 制作可选择的文本 我真的发现两者都很有用,使用文字真的很有帮助!在这里,我向您展示了一个条目代码:

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()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top