tkinter中的格鲁吉亚语。蟒蛇

时间:2016-09-17 14:33:04

标签: python tkinter georgian

我不能在Text小部件中使用标准格鲁吉亚语言。而不是字母写问号。 当没有tkinter,即在编写代码时,格鲁吉亚字体识别没有问题。另外,如果我复制用格鲁吉亚语写的并插入文本小部件中的单词,它就会正确显示。

这是显示屏幕上文本框的基本代码,我想在格鲁吉亚语中写一个单词。

import tkinter


root = tkinter.Tk()

txt = tkinter.Text(root)
txt.pack()

root.mainloop()

the first image shows how the word is displayed when the selected Georgian language.

the second shot, when I write in the code in Georgian, and define in advance the value of text field. in this case, the text in the field is displayed normally.

2 个答案:

答案 0 :(得分:0)

好的,这就是我如何实现它:
首先,确保您的计算机中安装了格鲁吉亚字体;如果没有,那就去下载一个(我从here下载了我的); 现在,转到您的tkinter程序,并将您的字体添加到Text小部件:

txt = tkinter.Text(root, font=("AcadNusx", 16))

注1:我支持格鲁吉亚语的字体名称是AcadNusx,但您的字体名称可能不同;
注意2:如果您尚未导入字体,请在程序开头导入;
注意3:请勿将计算机的字体更改为格鲁吉亚语,因为您已在程序中更改了它,因此请确保将其设置为英语。

答案 1 :(得分:0)

到目前为止,我能确定的最佳答案是格鲁吉亚和键盘输入有些东西是tk不喜欢的,至少在Windows上是这样。

字符“翻译”通常称为“音译”。

Tk文本使用Unicode的基本多语言平面(BMP,前2 ** 16个代码点)。这包括格鲁吉亚字母。第二个图像显示系统上的默认文本小部件字体非常能够显示格式化字符一旦字符在小部件中。因此,新的显示字体似乎不是您的问题的解决方案。 ('ქართულიენა'在Firefox上可见,因为FF是基于unicode的,如果不是全部的BMP,它可以显示最多。)

看起来问题是在不通过编辑器的情况下获取正确的代码。你使用什么操作系统和编辑器。你是如何进入类似于

的混合字母线
txt.insert('1.0', 'ქართული ენა')  # ?  (I cannot copy the image string.)

你是如何运行Python代码的?如果您从第一张图片中剪切问号并插入

for c in '<insert here>': print(ord(c))
你看到了什么?

您的操作系统需要'格鲁吉亚键盘输入'或'输入法'程序(Google显示几个),可让您在将ascii和Geargian代码发送到任何读取键盘的程序之间来回切换。

Windows现在提供此功能,并根据具体情况激活语言。我已经有西班牙语录入了,有了它,我可以在这里输入á和ñ,进入IDLE和一个新的文本框。但是,当我添加格鲁吉亚语时,我可以输入(随机;-)ჰჯჰფგეუგსკფ(在FireFox中,也是MS Edge),但只能输入??????在tk文本框中。这些是实际的ascii问号,ord('?')= 63,而不是无法表示的代码的替换。日语也适用于基于tk-Text的IDLE。所以格鲁吉亚语的问题并非通用于所有非拉丁字母表。