有没有办法获得列表中最大的单词,但不是每个单词中的字符数,而是打印后的宽度?
例如,字符I的宽度小于m的长度。
示例:
mwmwmwmwmw(len = 10)
iiiiiiiiiiiiiiiiiiii(len = 20)
正如我们在这个例子中所看到的,第二个字符串的len高于第一个字符串的len,但就宽度而言,它更短。
我知道这是一个奇怪的问题,但看到不同的方法很有意思。
当然这取决于打印时使用的字体:)
注意:我知道这取决于字体,但即使在这种情况下,每种字体应该或多或少地发生(我的意思是m会比我更大)
答案 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))