Python Tkinter将非活动边框设置为文本框?

时间:2011-08-06 05:30:36

标签: python text tkinter border

即使处于非活动状态,是否可以让文本框具有边框?

2 个答案:

答案 0 :(得分:2)

我不确定我知道“不活动时的边框”是什么意思,但你当然可以在TkInter中为文本添加边框。以下代码创建两个外框和两个内框,然后向每个内框添加一个Text。框架的四边都有5像素的边框。

from Tkinter import *

root = Tk()

left_outer = Frame(root, bd=1)
left_outer.pack(side=LEFT, fill=Y, pady=5, padx=5)
right_outer = Frame(root, bd=1)
right_outer.pack(side=LEFT, fill=Y, pady=5, padx=5)

left = Frame(left_outer, bd=2, relief=SUNKEN)
right = Frame(right_outer, bd=2, relief=SUNKEN)
left.pack(fill=Y)
right.pack(fill=Y)

t_start = Text(left, width=20, height=200)
t_start.pack(side=LEFT, fill=Y)
s_start = Scrollbar(left)
s_start.pack(side=RIGHT, fill=Y)
s_start.config(command=t_start.yview)
t_start.config(yscrollcommand=s_start.set)

t_end = Text(right, width=20, height=200)
t_end.pack(side=LEFT, fill=Y)
s_end = Scrollbar(right)
s_end.pack(side=RIGHT, fill=Y)
s_end.config(command=t_end.yview)
t_end.config(yscrollcommand=s_end.set)

root.geometry("400x200")
root.mainloop()

答案 1 :(得分:1)

odie5533的答案涵盖了为仅包含Text对象的框架提供边框。这是围绕文本对象提供2D的好方法,但是在混合中添加了另一个小部件。我认为原始问题与设置Text对象的边框宽度和浮雕类型有关。此片段为Text对象提供了一个浮雕,而不涉及另一个帧。

from Tkinter import *

root = Tk()

text_top = Text(root, relief=GROOVE, height=5, width = 40, borderwidth=2)
text_top.pack()

text_bottom = Text(root, relief=RIDGE, height=5, width = 40, borderwidth=2)
text_bottom.pack()

root.geometry("400x200")
root.mainloop()