如何在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 - 如何在Python的Tkinter模块中使对话框窗口出现在最前面?
python 用Tkinter.Text设置了文本框之后如何获取输入内容