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

use*_*465 1 python printing string-length

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

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

例子:

mwmwmwmwmw (len=10)

iiiiiiiiiiiiiiiiiiiii (len=20)

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

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

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

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

use*_*465 5

我终于使用了另一个问题链接来创建一个可以执行我想要的功能的函数:

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
Run Code Online (Sandbox Code Playgroud)

可以称为:

get_printed_size("some text", ("Helvetica",10))
Run Code Online (Sandbox Code Playgroud)