首页 > 解决方案 > 如何在 Python Tkinter 列表框中将字体更改为粗体/下划线/斜体?

问题描述

如何更改列表框中项目的字体样式?我以为它会使用listbox[i].itemconfig(),但这意味着字体样式不是一个选项。

我还阅读了THIS,这意味着您必须首先获取项目的字体,然后对其进行更改并将其设置为新字体。但是我如何对列表框中的单个项目执行此操作?

我试图有一个按钮来将列表框中的选定项目设置为“主”(这意味着什么并不重要),为此目的只需要以某种方式突出显示(最好不要使用前景/背景/任何颜色)。下面是我的尝试,它根本不起作用,因为它不完整。我不确定如何与列表框中特定项目的字体进行交互。请随时提供更好的方法。

对于没有提供更多或更好的示例代码,我深表歉意。我不知道如何尝试。我也用这个作为参考。(我很难理解tkFont作为一个包,以及为什么/如何使用它tk.font......)

def set_master(self):
    the_selection = self.the_listbox.curselection()
    for the_index, the_item in enumerate(self.the_listbox):
        f = tkFont.Font(font=the_item.cget("font"))

        if int(the_selection) == int(the_index):
            f.configure(underline=True, weight='bold', slant='italic')
        else:
            f.configure(underline=False, weight='normal', slant='roman')

        #the_item.set_font(f)  <--This is pseudocode
    return

标签: pythontkinterfonts

解决方案


您不能更改列表框中单个项目的字体。

如果您需要像列表框一样工作但能够更改单个项目字体的东西,您可以使用ttk.Treeview小部件。


推荐阅读