擅长:python、mysql、java
<p>你的代码的问题是你使用的是一个小部件的宽度,但是在这个小部件真正在屏幕上显示出来之前,它的宽度是1,因为实际的宽度取决于很多因素,而这些因素在这之前是不存在的。在</p>
<p>你不需要把文本放在一个小部件中来测量它。您可以向<code>font.measure()</code>传递一个字符串,它将返回以给定字体呈现该字符串所需的空间量。在</p>
<p>对于python 3.x,可以导入<code>Font</code>类,如下所示:</p>
<pre><code>from tkinter.font import Font
</code></pre>
<p>对于python 2.x,您可以从<code>tkFont</code>模块导入它:</p>
^{pr2}$
<p>然后,您可以创建<code>Font</code>的实例,以便获得有关该字体的信息:</p>
<pre><code>font = Font(family="Purisa", size=18)
length = font.measure("Hello, world")
print "result:", length
</code></pre>
<p>您还可以使用<code>font.metrics()</code>方法获得给定字体中一行的高度,给它一个参数“linespace”:</p>
<pre><code>height = font.metrics("linespace")
</code></pre>