通过文本宽度获取一个单词的打印长度
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))
有什么方法可以得到列表中最大的单词,而不是通过每个单词中的字符数,而是通过打印后的宽度?
例如字符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))