将滚动条添加到Tkinter条目或文本小部件

时间:2014-06-25 13:47:21

标签: python python-2.7 user-interface tkinter widget

我很清楚可以将滚动条添加到“文本”小部件中。但我的问题是我希望它只读。我能做的唯一方法是使state = DISABLED,但这会阻止我的文本,因此无法复制文本。 好吧,在Tkinter Entry小部件中没有yScroll行为。知道我怎么能得到这些东西吗?任何帮助表示赞赏。

现在我将其用于文本

`

root=Tk()   
 txt = Text(root, height=5, width=55)
 scr = Scrollbar(root)
 scr.config(command=txt.yview)
 txt.config(yscrollcommand=scr.set)
 txt.pack(side=LEFT)
 txt.insert(INSERT, "hello world\nhello world\n hello world\n hello world\n hello world\n     hello world\n hello world\n hello world\n hello world\n hello world\n")
 txt.insert(END,"\n")
 scr.pack(side="right", fill="y", expand=False)
 txt.pack(side="left", fill="both", expand=True)
 root.mainloop()

`

有了这个问题就是可以编辑文本。

1 个答案:

答案 0 :(得分:1)

您似乎无法复制已禁用小部件文本的原因是某些平台上的已禁用小部件无法获得焦点,因此需要重点选择文本。您可以通过添加绑定来将其设置为鼠标单击上的焦点来纠正它。

在代码中添加以下两行:

txt.configure(state="disabled")
txt.bind("<1>", lambda event: txt.focus_set())