2017-01-19 5 views
1

볼 수있는 목록 상자 영역에만 들어갈 수있는 목록 상자 항목의 수를 찾는 데 어려움이 있습니다. 아래로 스크롤. 죄송합니다. 이것이 사소한 것이라면,이 것을 알아내는 데 어려움이 있습니다. Tkinter에서 목록 상자의 가시 영역에 들어갈 수있는 항목의 양을 계산하십시오.

나는 내 문제를 설명하기 위해 작은 예를 썼다했습니다 그래서 지금은 목록 상자가

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() 

을하지만, 해당 항목의 일부를 볼 수 있습니다. 얼마나 많은 사람들이 볼 수있는 영역을 벗어나지 않고 잘 들어갈 수 있는지를 어떻게 알 수 있습니까? 모든 통찰력이 환영받을 것입니다. 감사!

답변

1

tkFont 높이의 크기는 metrics() 방법을 통해 액세스 메트릭 linespace에 저장 -

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

리스트 박스 위젯의 높이는 것이 winfo_height() 통해 검색 가능하다. 총 -

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

자원 - http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/fonts.html

0

목록 상자에는 표시 할 줄 수인 height 옵션이 있습니다. 기본값은 10입니다. 기본값 그대로두면 상자에 '0'에서 '9'까지의 10 줄이 표시됩니다. 나는 이것을 일상적으로 사용하는 http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html을 확인함으로써 발견했다. 몇 가지 오류 만 있습니다.

+0

하지만 어떻게 특정 볼 수있는 영역에서 얼마나 많은 라인에 맞게 알 수 있습니까? 사용자가 창 크기를 조정하거나 글꼴을 변경한다고 가정 할 때, 주어진 목록 상자 크기에 대해 스크롤하지 않고 얼마나 많은 항목을 넣을 수 있습니까? – Jay