2017-09-10 16 views
0

フォント(Times New Roman、14)がいくつかあり、文字列幅を測定する必要があります。 Pythonでの文字列幅の測定

from matplotlib import rcParams 
import os.path 
afm_filename = os.path.join(rcParams['datapath'], 'fonts', 'afm', 
       'ptmr8a.afm') 
from matplotlib.afm import AFM 
afm = AFM(open(afm_filename)) 
afm.string_width_height('What the heck?') 

しかし、私は、「データパス」、「フォント」、「AFM」の代わりに貼り付ける必要があるかを理解することはできません:私はAPIからmatplotlibのと例を発見しました。 Pythonで刺し網幅を取得する方法はありますか?多分別の方法ですか?

+0

文字列の幅は?あなたは文字列の長さを意味しますか? – Jonathan

+0

あなたのファイルはどこにありますか? –

+0

文字列の長さをピクセル単位で取得することを意味しますか? – RedEyed

答えて

1
import tkinter as Tkinter 
from tkinter import font as tkFont 

Tkinter.Frame().destroy() 
txt = tkFont.Font(family="Times New Roman", size=14) 
width = txt.measure("What the heck?") 
print(width) 
+0

何らかのエラー:ファイル "E := =ПРОЕКТЫ=/= PYTHON =/=ТЕКСТ=/Calc_String_Variants/Calc.py "、行4、 txt = tkFont.Font(family =" Times New Roman "、size = 14) ファイル" C: \ user \ User \ UserData \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ tkinter \ font.py "、93行目、__init__ tk.call(" font "、" create "、self.name、* font ) AttributeError: 'NoneType'オブジェクトに 'call'属性がありません – Ivan

+0

私は答えを更新しました。 python2のコードを使用 – RedEyed

+0

それはいくつかの追加です: – Ivan