按文字宽度获取单词的打印长度

时间:2016-05-05 02:57:35

标签: python printing string-length

有没有办法获得列表中最大的单词,但不是每个单词中的字符数,而是打印后的宽度?

例如,字符I的宽度小于m的长度。

示例:

mwmwmwmwmw(len = 10)

iiiiiiiiiiiiiiiiiiii(len = 20)

正如我们在这个例子中所看到的,第二个字符串的len高于第一个字符串的len,但就宽度而言,它更短。

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

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

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

1 个答案:

答案 0 :(得分:4)

我终于使用了另一个问题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))