【问题标题】:How to put a string fith first r characters bold in ListBox Tkinter?如何在 ListBox Tkinter 中将第一个 r 个字符加粗的字符串?
【发布时间】:2020-05-09 12:03:26
【问题描述】:

我尝试在 Tkinter 中使用 ANSI 转义序列“\033[1m”之前将字符串放入 ListBox,并在之后使用 ANSI 转义序列“\033[0m”。

l = Listbox(root, width=33,font = ('Arial', 15))
a="aaaabc"
l.insert(END,"\033[1m" + a[0:r] + "\033[0m"+a[r:]")

我得到的是

SyntaxError: f-string expression part cannot include a backslash

【问题讨论】:

  • 你需要这个吗? -> l.insert(END, f"\033[1m{a[0:r]}\033[0m{a[r:]}")
  • 显然不行,但你只能为整个ListBox设置字体,所以我不知道如何只加粗一些字符

标签: python tkinter listbox


【解决方案1】:

您不能在列表框中使用 ANSI 转义序列,也无法更改项目中某些字符的属性。

如果您需要丰富的格式,则需要使用支持丰富格式的小部件。唯一实用的选择是Text 小部件,这意味着您必须提供自己的绑定才能使其表现得像一个列表框。

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 2020-06-12
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多