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

Python 如何更改tkinter标签部分的字体样式,python,widget,tkinter,label,styling,Python,Widget,Tkinter,Label,Styling,我想知道如何更改Python Tkinter标签小部件的字体,以便在不使用两个标签的情况下,显示的文本一半是粗体,一半不是。小部件的文本是在实际创建标签并存储在变量中之前分配的,因此我需要某种标志来告诉它字符串中有多少应该是粗体的。我不认为这是可能的,但建议很受欢迎。我认为没有现成的方法来更改标签内的字体,但您可以自定义标签类型来处理它,例如: def customLabel(parent, row, column, bold, standard): cLabelFrame = Fram

我想知道如何更改Python Tkinter标签小部件的字体,以便在不使用两个标签的情况下,显示的文本一半是粗体,一半不是。小部件的文本是在实际创建标签并存储在变量中之前分配的,因此我需要某种标志来告诉它字符串中有多少应该是粗体的。我不认为这是可能的,但建议很受欢迎。

我认为没有现成的方法来更改标签内的字体,但您可以自定义标签类型来处理它,例如:

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
是常规文本。您必须找出拆分原始字符串的位置,并将其分配给
粗体
标准
参数。

您无法使用标签小部件——它只支持整个标签的单一字体和单一颜色。但是,您可以在任何需要此功能的地方轻松地替换画布或文本小部件。没有理由不能使用一行高、十几个字符宽的文本小部件

或者你可以用两个标签组成一个小部件。。。文本小部件将具有不同的外观,并且不能缩小到label@BłażejMichalik:那不是真的。您可以使用文本小部件获得与标签完全相同的外观,并且文本小部件可以缩小到您喜欢的大小。也许您可以通过扩展配置获得相同的外观,但您无法将其缩小到相同的大小,因为
tkinter.Text
是一个组合小部件,它的每一个层次都在广告中留有空白。将文本小部件配置为
width=1,height=1
并不会使其像具有相同配置的标签一样小。至少在宽度方面。此外,您还需要将其重新配置为禁用和不可选择。@BłażejMichalik:“tkinter.Text是一个组合小部件”是什么意思?这完全没有道理。它不是组合的,它是一个核心tk小部件。它正好有一个边框和一个高光环,就像标签一样。当然,您必须启用和禁用它,并且需要两个或三个配置选项才能获得相同的外观,但这并不是“广泛配置”。通过两行代码,我可以为您提供一个文本小部件,它在各个方面都与标签完全相同。我刚刚创建了宽度和高度设置为1的
text
label
,并将相同的文本插入其中。在我的环境(GNOME)上,
文本
小部件显示一个字母,而标签显示两个字母
tkinter.Text
Label
具有更多的层,即使它是一个核心小部件。