计算适合Tkinter

时间:2017-01-19 20:00:55

标签: python tkinter listbox tk

我无法找到适合可查看列表框区域的列表框项目数,因此您无需向下滚动。 对不起,如果这是微不足道的,我很难搞清楚这个。

我写了一个小例子来说明我的问题:

from Tkinter import *
from tkFont import Font

myfont=Font(family='Times', size=12)

a=Listbox(activestyle='dotbox', font=myfont)
a.insert(END, *xrange(100))
a.pack(side='left', fill=BOTH, expand=1)

mainloop()

所以现在我有一个列表框,但只有一些项目可见。如何在不离开可视区域的情况下计算出多少可以适合?任何见解都会受到欢迎。谢谢!

2 个答案:

答案 0 :(得分:1)

tkFont高度的大小存储在linespace指标中,可通过metrics()方法访问 -

myfont.metrics()['linespace']
#returns 19 for myfont as initiated in the question

可以通过winfo_height()检索Listbox小部件的高度。总计 -

visible_lines= a.winfo_height()/myfont.metrics()['linespace']

资源 - http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/fonts.html

答案 1 :(得分:0)

列表框有一个选项height,它是要显示的文本行数。默认值为10.由于您保留默认值,因此您的框显示10行,包含'0'到'9'。我通过检查常规使用的http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html来发现这一点。它只有一些错误。