【发布时间】:2017-06-19 21:30:29
【问题描述】:
所以,tkinter 文本编辑器!
编辑器显然需要文本样式,需要使用标签将键入的文本更改为当前选择的任何格式。但问题是当格式改变时标签名称需要改变,否则标签将应用于整个文本。
(这是我在很长一段时间内都在努力识别的问题)
为了避免这种情况,你需要很多标签(比如bold, both, calibri等),所以代码看起来像这样
if style == 'bold':
tag_add('bold', 'insert -1c', 'insert')
tag_configure('bold', font=('Calibri', 12, 'bold'))
if stlye == 'italic':
etc etc
这是很糟糕的代码,无法使用不同的字体/大小。
有没有像这样组织多个标签的正确方法,比如
tag.add(currentstyle, 'insert -1c', 'insert')
tag.config(currentstyle, font=(currentfont, currentsize, currentweight, currentslant))
感谢您的帮助
更新
在 Bryan 的帮助下解决了
tagname = '{}-{}-{}-{}'.format(font, fontsize, weight, slant)
textbox.tag_add(tagname, 'insert -1c', 'insert')
textbox.tag_configure(tagname, font=(font, fontsize, weight, slant))
现在每个标签都有一个唯一的名称
【问题讨论】: