python - 如何自动调整文本大小以适应固定大小的 PyGTK 标签?

标签 python gtk label pygtk autoresize

我有一个固定大小的 gtk.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 点,直到文本最终适合。随意将 size -= 100 调整为您喜欢的任何增量(它越小越慢但粒度越细)。

让我知道这是否不完全,我可以稍后对其进行完善。

关于python - 如何自动调整文本大小以适应固定大小的 PyGTK 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4709819/

相关文章:

css - 如何使用自定义 CSS 设置 GTK+ 样式?

c - GObject 样本 : undefined reference to `product_finalize' ?

gtk - 获取股票 ID 的图标名称?

python - 使用 TPU 在 GCP 上进行 Keras/Tensorflow 训练

python - 在 ReportLab 中向 Canvas 元素添加超链接的最简单方法是什么?

python - "with"语句中的变量范围?

jquery - 如何使用 jQuery 设置文本标签?

html - 对非输入/非交互元素使用 <label> 是一种好习惯吗?

gwt - 标签背景色gwt

python - 设置 template 和wrapper_class 参数并渲染单个表单字段而不是表单