簡體   English   中英

如何自動調整文本大小以適合固定大小的PyGTK標簽?

[英]How do I automatically resize text to fit a fixed-size PyGTK label?

我有一個固定大小的gtk.Label 我想自動調整文本大小,使其適合Label。 使用不固定寬度的字體是否有一種優雅的方法?

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."

我沒有時間測試這個,但是這些方面的東西應該做你想要的:

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()替換為您想要的最大寬度。

實際上,這只是將字體大小逐漸減少1/10點,直到文本最終適合。 隨意調整大小 - = 100到你喜歡的任何增量(越小越慢,但它將更細粒度)。

讓我知道,如果不是這樣,我可以稍后改進它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM