我正在使用区域语言文本编辑器,它从文本小部件中获取区域Unicode字符(我使用的脚本是Gurmukhi,Unicode兼容字体是Raavi)并将其打印在终端屏幕上。
现在当我将一些字符串复制并粘贴到文本小部件中时会出现问题,它会转换为图像中所示的框,但它会在终端窗口上打印出完美的字符串。
虽然我已尝试encoding
的{{1}}和decoding
功能,但是,这也是徒劳的。
我在Tkinter中找不到与文本小部件的Unicode输入机制相关的任何答案。
我们如何在文本小部件中显示完美的unicode字符串?
这是我的代码:
codecs
这是输入和输出:
答案 0 :(得分:1)
我们如何在文本小部件中显示完美的unicode字符串?
假设您安装了正确的字体,您的代码应该可以正常工作。我已将您的代码缩减为更简单的示例:
import tkinter.font as tkFont
from tkinter import *
root = Tk()
customFont = tkFont.Font(family='Raavi', size=17)
content_text = Text(root, font=customFont, width=20, height=4)
content_text.pack(expand='yes', fill='both')
content_text.insert("end", 'ਸਤਵਿੰਦਰ')
root.mainloop()
在我的系统上,会产生以下结果:
当我打印customFont.actual()
的结果时,我得到以下内容(我没有安装" Ravii"字体,因此tkinter将替换后备字体,这可能是不同的你的系统):
{
'slant': 'roman',
'underline': 0,
'size': 17,
'family': 'DejaVu Sans',
'overstrike': 0,
'weight': 'normal'
}
要查看您的tkinter安装将识别的所有字体系列的列表,请运行以下代码:
from tkinter import font, Tk
root = Tk()
print(font.families())