如何在tkinter python中输入bengali或Unicode语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在tkinter python中输入bengali或Unicode语言相关的知识,希望对你有一定的参考价值。

我是python中GUI平台的初学者。我创建了一个文本框,但是当我输入除英语之外的其他语言特别是孟加拉语它显示??。谁能帮我吗 。我附上我的代码和示例输出

 try:
    from tkinter import *
    import sys
except ImportError:
    from tkinter import *
    import sys

class App(object):
    def __init__(self,parent):

        self.frame1 = Frame(parent, highlightbackground="green", highlightcolor="#666D00", highlightthickness=7, width=700, height=700, bd= 10)
        self.frame1.pack()
        self.frame1.pack_propagate(False)
        parent.geometry("700x700")
        parent.resizable(0, 0)
        self.frame1.configure(background='white')


        self.text1 = Label(text="আপনার অনুচ্ছেদ পূরণ করুন (বাংলা):",font=("Lohit Bengali", 16))
        self.text1.place(x=110, y=100)

        self.T = Text(self.frame1,bd=5)
        #self.T.config(font=("helvetica"))
        #self.T.insert(END, u'ji'.encode("utf-8"))
        self.T.place(x=120, y=150, height=90, width=300)



root = Tk()
root.call('encoding', 'system', 'utf-8')
app = App(root)

root.mainloop()

当我尝试输入bengali它显示???

答案

这里有几个方面,首先你应该声明你的源文件编码:

# -*- coding: utf8 -*-

这必须是文件中的第一行或第二行。

其次,您需要确保您的编辑器实际上保存了该编码(使用记事本++等编辑器很容易,而不知道您使用的指令会有所不同)

最后,即使python3中的字符串默认被视为unicode,最好是显式的:

self.text1 = Label(text=u"আপনার অনুচ্ছেদ পূরণ করুন (বাংলা):",font=("Lohit Bengali", 16))

注意在开场报价之前添加的u

我在我的机器上测试了这个,当我的编辑器(记事本++)没有显示字符时,字符在运行时显示在tkinter窗口上。

另外,你粘贴的代码都有相同的导入集,即如果第一个失败,那么tkinter的第二个应该大写。

以上是关于如何在tkinter python中输入bengali或Unicode语言的主要内容,如果未能解决你的问题,请参考以下文章

python tkinter 如何获取文本框中的内容?

我如何使用python将终端输出到网格中的tkinter框架?

python - 如何在Python的Tkinter模块中使对话框窗口出现在最前面?

python 用Tkinter.Text设置了文本框之后如何获取输入内容

如何更改文本框的大小,以便它可以使用tkinter和python在UI上水平扩展

Tkinter制作简单的python编辑器