4

我想使用 Tkinter 制作弹出窗口。我可以这样做:

import Tkinter
a="some data that use should be able to copy-paste"
tkMessageBox.showwarning("done","message")

但是有一个问题是用户需要能够选择、复制和粘贴显示的文本。不可能以这种方式进行。

有没有办法用 Tkinter 做到这一点?(或默认情况下与 python 一起提供的其他工具)

提前感谢您的任何提示

4

2 回答 2

3

这里,似乎Entry在 Tkinter 中使用的解决方法是可行的。这是代码:

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

编辑:为了回复您的评论,我找到了一种使用小部件插入多行文本的方法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()

我(仍然)对任何更好的解决方案感兴趣:)

于 2012-11-22T20:26:44.350 回答
0

您可以使用按钮进行复制和粘贴。首先你需要选择。在文本小部件中,它很容易通过

selection=nameoftextwidget.get(SEL_FIRST,SEL_LAST)

然后,您可以通过使用选择轻松地使用它进行复制。如果要将其复制/粘贴到同一个文本小部件中,可以使用:

nameoftextwidget.insert(END,"\n"+selection)
于 2012-11-22T21:12:41.117 回答