python - 如何在 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
解决方案
您不能更改列表框中单个项目的字体。
如果您需要像列表框一样工作但能够更改单个项目字体的东西,您可以使用ttk.Treeview
小部件。
推荐阅读
- azure - apim 调用函数应用的部署脚本
- java - 填写用户类时出现 ClassCastException 错误
- javascript - 如何在 jsx 中渲染字符串在对象数组上使用 reduce
- mysql - MySQL 获取当前 + N 前几个月
- java - Java:将使用服务器公钥加密的随机对称密钥发送到该服务器是否安全?
- assembly - 将几种数据类型的数字输出到 MessageBox 会造成混乱
- tensorflow - TensorFlow 离线使用预训练模型
- django - 如何检查扩展用户模型中的重复项
- reactjs - 在堆栈导航中反应本机选项卡导航不起作用
- knockout.js - 结果在淘汰赛中重复