2011-01-17 3 views
3

고정 크기 gtk.Label입니다. 레이블 내에 맞도록 텍스트의 크기를 자동으로 조정하고 싶습니다. 너비가 고정되어 있지 않은 글꼴을 사용하는 우아한 방법이 있습니까?고정 크기 PyGTK 레이블에 맞게 텍스트의 크기를 자동으로 조정하려면 어떻게합니까?

my_label = gtk.Label() 

# Short text segment 
my_label.set_text("Short text segment.") 

# Long text segment 
### Determine required text size here. ### 
my_label.set_text("This is a really long text segment that I would like to resize." 

답변

0

나는 이것을 테스트 할 시간이 없었다, 그러나이 라인을 따라 뭔가 당신이 원하는 일을한다고 :

size = 12000 # thousandths of a point 
temp_label = gtk.Label(my_label.get_text()) 
while temp_label.get_width() > my_label.get_width(): 
    size -= 100 
    temp_label.set_attributes(pango.Attrlist().insert(pango.AttrSize(size)) 
my_label = temp_label 

이 직접 my_label로의 폭을 강요하고 있다고 가정합니다. my_label이 부모 컨테이너와 같은 다른 것으로부터 너비를 가지면 my_label.get_width()를 원하는 최대 너비로 대체하십시오.

Essentialy는 텍스트가 마침내 적합 할 때까지 포인트의 1/10th만큼 글꼴 크기를 반복합니다. 크기 - 100을 원하는대로 늘리십시오. (작을수록 느려지지만 세분화됩니다.)

상당히 이상한 부분이 아니라면 나중에 알려주세요.

+0

아이디어가 있지만 gtk.Label에는 get_width 함수가없는 것 같습니다. – williampli

관련 문제