我无法在文本小部件中使用标准的格鲁吉亚语书写。而不是字母写问号。当没有 tkinter 时,即编写代码时,格鲁吉亚字体识别没有问题。另外,如果我复制用格鲁吉亚语写的单词并插入到文本小部件中,它会正确显示。
这是在屏幕上显示文本框的基本代码,我想在其中用格鲁吉亚语写一个单词。
import tkinter
root = tkinter.Tk()
txt = tkinter.Text(root)
txt.pack()
root.mainloop()
我无法在文本小部件中使用标准的格鲁吉亚语书写。而不是字母写问号。当没有 tkinter 时,即编写代码时,格鲁吉亚字体识别没有问题。另外,如果我复制用格鲁吉亚语写的单词并插入到文本小部件中,它会正确显示。
这是在屏幕上显示文本框的基本代码,我想在其中用格鲁吉亚语写一个单词。
import tkinter
root = tkinter.Tk()
txt = tkinter.Text(root)
txt.pack()
root.mainloop()
到目前为止,我能确定的最佳答案是 tk 不喜欢格鲁吉亚语和键盘输入,至少在 Windows 上不喜欢。
字符“翻译”通常称为“音译”。
Tk 文本使用 Unicode 的基本多语言平面(BMP,前 2**16 个代码点)。这包括格鲁吉亚字母表。第二张图片显示,一旦字符出现在小部件中,系统上的默认 Text 小部件字体就可以很好地显示格鲁吉亚字符。因此,新的显示字体似乎不能解决您的问题。('ქართული ენა' 在 Firefox 上可见,因为 FF 是基于 unicode 的,并且可以显示大部分(如果不是全部)BMP。)
看起来问题是在不通过您的编辑器的情况下获取正确的 tk 代码。您使用的是什么操作系统和编辑器。您是如何输入类似于以下的混合字母行的
txt.insert('1.0', 'ქართული ენა') # ? (I cannot copy the image string.)
你是如何运行 Python 代码的?如果你从第一张图片中剪下问号并插入
for c in '<insert here>': print(ord(c))
你看到了什么?
您的操作系统需要一个“格鲁吉亚键盘输入”或“输入法”程序(谷歌显示了几个),它可以让您在向任何读取键盘的程序发送 ascii 和 Geargian 代码之间来回切换。
Windows 现在附带此功能,并根据具体情况激活语言。我已经输入了西班牙语,有了它,我可以在此处输入 á 和 ñ 并进入 IDLE 和一个新的文本框。但是,当我添加格鲁吉亚语时,我可以在此处输入(随机 ;-) ჰჯჰფგეუგსკფ(在 FireFox 中,还有 MS Edge 中),但只能得到 ?????? 在 tk 文本框中。这些是实际的 ascii 问号 ord('?') = 63,而不是替代无法表示的代码。日语也适用于基于 tk-Text 的 IDLE。因此,格鲁吉亚语的问题并不适用于所有非拉丁字母。
好的,这就是我实现它的方法:
首先,确保您的计算机中安装了格鲁吉亚字体;如果没有,那就去下载一个(我从这里下载了我的);
现在,转到您的 tkinter 程序,并将您的字体添加到您的Text
小部件:
txt = tkinter.Text(root, font=("AcadNusx", 16))
注 1:我支持格鲁吉亚语的字体名称是 AcadNusx,但您的可以不同;
注意2:如果你还没有导入Font,那么在你程序的开头导入它;
注意 3:不要将计算机的字体更改为格鲁吉亚语,因为您已经在程序内部更改了它,因此请确保将其设置为英语。