我想使用Tkinter制作弹出窗口。 我可以这样做:
import Tkinter
a="some data that use should be able to copy-paste"
tkMessageBox.showwarning("done","message")
但是有一个问题是用户需要能够选择,复制和粘贴显示的文本。 这样做是不可能的。
有没有办法用Tkinter做到这一点? (或默认情况下随python提供的其他工具)
提前感谢任何提示
答案 0 :(得分:3)
从here开始,似乎在Tkinter中使用Entry
的解决方法是可行的。这是代码:
import Tkinter as Tk
root = Tk.Tk()
ent = Tk.Entry(root, state='readonly')
var = Tk.StringVar()
var.set('Some text')
ent.config(textvariable=var, relief='flat')
ent.pack()
root.mainloop()
编辑:要回复您的评论,我found使用Text
窗口小部件插入多行文字。
以下是解决方案草案:
from Tkinter import *
root = Tk()
T = Text(root, height=2, width=30, bg='lightgrey', relief='flat')
T.insert(END, "Just a text Widget\nin two lines\n")
T.config(state=DISABLED) # forbid text edition
T.pack()
mainloop()
我(仍)对任何更好的解决方案感兴趣:)
答案 1 :(得分:0)
您可以使用按钮进行复制和粘贴。首先你需要选择。在文本小部件中,可以通过
轻松完成selection=nameoftextwidget.get(SEL_FIRST,SEL_LAST)
然后您可以使用此选项轻松复制。如果要将其复制/粘贴到同一文本小部件中,可以使用:
nameoftextwidget.insert(END,"\n"+selection)