2017-09-11 3 views
1

ベンガルのテキストをTkinterのラベルやメッセージウィジェットに表示したいのですが、テキストではなく物のように表示されます。
私は既にシステムに異なるフォントをインストールしてコードに適用しようとしましたが、何も動作していません。ベンガル語フォントでテキストを表示するにはどうすればよいですか。 Ubuntuの16.04、Pythonの3.5アイドルとTkinterのアプリケーションでベンガルのフォントが壊れています

from tkinter import * 
from tkinter import ttk 

root = Tk() 
msg=Message(root,text='আনন্দবাজার') 
msg.config(font=('Lohit Bengali', 54)) 
msg.pack() 
root.mainloop() 

App Screenshot with output

+0

を呼びますか? –

+0

はい、私はすでに "Lohit Bengali"をインストールしています。 –

答えて

0

あなたTcl/Tkは知っていて、 'ロヒトベンガル' にアクセスできるかどうかを判断するために最初に必要detail-
システム。 IDLEを実行し、Options => Configure IDLEをクリックし、フォントリストを確認します。 それとも

import tkinter as tk 
root = tk.Tk() 
from tkinter import font 
fams = font.families() 
print('Lohit Bengali' in fams) # answer question above 
print() 
for fam in sorted(fams): # To see what tcl does know about 
    print(fam) 

EDITを実行します。家族に括弧を追加するには、あなたがあなたのマシンにインストールされている「ロヒトベンガル語」という名前のフォントファミリを持っていることを確かに知っています

+0

私はBengaliフォントをインストールしていませんが、Windows上でLucida Consoleを使用してIDLEのシェルに 'Àাইথন'を貼り付けたとき、ここでFireFoxと同じように正しく表示されます。 Windowsでは、Windowsではtcl/tkが、Ubuntuよりも文字を埋め込む方がはるかに優れています。おそらくあなたが持っているシステムフォントの一つがそうするでしょう。 IDLEで複数のフォントを簡単に試すことができます。あるいは、フォントのそれぞれが認識された状態で、プログラムを答えに入力して 'Àাইথন'を印刷することもできます。 –

+0

print( 'Lohit Bengali' in fams)#答え質問 TypeError: 'function'型の引数は反復可能ではありません。このエラーは、プログラムの実行中に表示されます。アイドルを設定し、フォントフェイスを 'Lohit Bengali'に変更することで、ベンガル語が表示されますが、正しくはありません。まだ破損しています。 –

+0

投稿されたコードは 'families'の後に'() 'がありませんでした。今修正されました。もう一度やり直すことができます。 –

関連する問題