通过文本宽度获取一个单词的打印长度

Get the printed length of a word by text width

有什么方法可以得到列表中最大的单词,而不是通过每个单词中的字符数,而是通过打印后的宽度?

例如字符i的宽度小于m的长度

示例:

mwmwmwmwmw (len=10)

iiiiiiiiiiiiiiiiiiii (len=20)

在这个例子中我们可以看到,第二个字符串的len比第一个高,但是在width上,它更短

我知道这是一个奇怪的问题,但看到不同的方法很有趣。

当然这取决于打印时使用的字体:)

注意:我知道这取决于字体,但即使在那种情况下,每种字体或多或少都会发生这种情况(我的意思是 m 会比 i 大)

我终于使用了另一个问题 link 来创建一个函数来执行我想要的操作:

def get_printed_size(text, myfont):
    root = tk.Tk() 
    font = tkFont.Font(family=myfont[0], size=myfont[1])
    (w,h) = (font.measure(text),font.metrics("linespace"))
    print "%s %s: (%s,%s)" % (myfont[0],myfont[1],w,h)
    return w

可以调用的:

get_printed_size("some text", ("Helvetica",10))