如何为tkinter标签的一部分更改字体样式

4 投票
2 回答
10974 浏览
提问于 2025-04-17 22:39

我在想,怎么才能改变Python Tkinter中的标签(label)字体,让一半的文字是粗体,另一半不是,而不需要用两个标签。这个标签显示的文字是在创建标签之前就已经存储在一个变量里的,所以我需要某种标记,来告诉它字符串中哪一部分应该是粗体。我不知道这样是否可行,但如果有建议的话,我会很感激。

2 个回答

2

我觉得没有现成的方法可以直接在标签中更改字体,不过你可以自己创建一个自定义的标签类型来实现这个功能,比如:

def customLabel(parent, row, column, bold, standard):
    cLabelFrame = Frame(parent)
    cLabelFrame.grid(row=row, column=column)
    Label(cLabelFrame, text=bold, font=('bold').grid(column=0)
    Label(cLabelFrame, text=standard).grid(column=1)

这里的参数:parent 是包含这个标签的框架,bold 是你想要加粗的文本,而 standard 是普通的文本。你需要找出原始字符串的分割点,然后把它们分别赋值给 boldstandard 这两个参数。

4

标签控件的功能很有限——它只能使用一种字体和一种颜色,整个标签都是这样。不过,如果你需要更多的样式选择,可以很简单地用画布控件或者文本控件来代替。其实,你完全可以使用一个高度只有一行、宽度大约十几个字符的文本控件。

撰写回答