当我把它包起来时,Gtk.CellRendererText会让自己变得很高

时间:2013-07-11 15:08:13

标签: python gtk

我正在尝试允许在Gtk.CellRendererText中包装文本,但我的问题很小:

huge rows!

那些行非常大。

我改变的唯一代码是:

    cell = Gtk.CellRendererText(markup=0)
    cell.set_property("wrap_mode", Pango.WrapMode.WORD)
    cell.set_property("wrap_width", 20)

这使它成为包装,但它似乎也使这个视觉问题出现

1 个答案:

答案 0 :(得分:1)

我似乎记得很久以前在行星侏儒的博客上读过这个。根据我的记忆,与宽度高度绘图模型有关,这意味着当启用包装时,GtkLabel等请求足够的高度来重排文本的包装宽度,即使有更多的水平空间可用,这会留下空的负载宽度较宽时的空间。有一个修复,但我担心我现在不能记住它,我会试着找到原来的帖子。

我已经尝试了但是我找不到帖子,但是读了更多我很确定这是问题所在。有一些与GtkTable有关的讨论在https://bugs.launchpad.net/ubuntu/+source/gtk+3.0/+bug/825173做了类似的事情。我有一种令人讨厌的感觉,我无法正确记住的修复可能是关闭包装。我想有可能在列宽改变时得到通知,并使wrap-width成为该值的正确宽度,但这有点痛苦。

如果您可以使用固定宽度的列,请将列的expand属性设置为False,将fixed-width属性设置为True,然后设置{渲染器的{1}},wrap-widthwidth-chars属性都具有相同的值,然后文本换行而没有任何额外的空间。