即使处于非活动状态,是否可以让文本框具有边框?
答案 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()