Python Tkinter 设置文本框的非活动边框?
有没有办法让一个文本框在不被选中时也有边框?
2 个回答
2
odie5533的回答讲的是如何给一个只包含文本的框加边框。这是给文本对象周围加一个2D效果的好方法,但这样会多一个组件。我觉得最初的问题是关于如何设置文本对象的边框宽度和样式。这个代码片段可以直接给文本对象加样式,而不需要再加一个框。
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()
5
我不太确定“非活动状态下的边框”是什么意思,不过你可以在TkInter中给文本添加边框。下面的代码创建了两个外框和两个内框,然后在每个内框中添加了一个文本框。所有框的四周都有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()