tkinter标签的边框

时间:2016-09-09 16:31:48

标签: python tkinter

并不是真的相关,但我正在构建一个日历,而且我有很多Label小部件,因此如果我有一些边框,它看起来会更好!

我已经看到你可以为其他小部件执行此操作,例如Button,Entry和Text。

最小代码:

from tkinter import *

root = Tk()

L1 = Label(root, text="This")
L2 = Label(root, text="That")

L1.pack()
L2.pack()

我尝试过设置

highlightthickness=4
highlightcolor="black"
highlightbackground="black"
borderwidth=4

在小部件内部,但仍然是相同的结果。

example pic tkinter

这甚至可以吗?谢谢!

2 个答案:

答案 0 :(得分:41)

如果您想要边框,则选项为borderwidth。您还可以选择边框的浮雕:"flat""raised""sunken""ridge""solid""groove"

例如:

l1 = Label(root, text="This", borderwidth=2, relief="groove")

注意:"ridge""groove"要求至少两个宽度像素才能正确呈现

examples of tkinter borders

答案 1 :(得分:0)

@Pax Vobiscum-实现此目的的一种方法是获取一个小部件,并在该小部件后面扔一个带有颜色的框架。 Tkinter的所有用途可能在其功能集中有些原始。 bordercolor选项对于任何小部件工具箱都是合乎逻辑的,但似乎没有。

from Tkinter import *

root = Tk()
topframe = Frame(root, width = 300, height = 900)
topframe.pack()

frame = Frame(root, width = 202, height = 32, highlightbackground="black", highlightcolor="black", highlightthickness=1, bd=0)
l = Entry(frame, borderwidth=0, relief="flat", highlightcolor="white")
l.place(width=200, height=30)
frame.pack
frame.pack()
frame.place(x = 50, y = 30)

使用此方法的示例可能是创建表:

from Tkinter import *

def EntryBox(root_frame, w, h):
    boxframe = Frame(root_frame, width = w+2, height= h+2, highlightbackground="black", highlightcolor="black", highlightthickness=1, bd=0)
    l = Entry(boxframe, borderwidth=0, relief="flat", highlightcolor="white")
    l.place(width=w, height=h)
    l.pack()
    boxframe.pack()
    return boxframe

root = Tk()
frame = Frame(root, width = 1800, height = 1800)
frame.pack()

labels = []

for i in range(16):
    for j in range(16):
        box = EntryBox(frame, 40, 30)
        box.place(x = 50 + i*100, y = 30 + j*30 , width = 100, height = 30)
        labels.append(box)