1

我试图允许将文本包装在 Gtk.CellRendererText 中,但我有一个小问题:

巨大的行!

这些行非常大。

我更改的唯一代码是:

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

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

4

1 回答 1

1

我似乎记得很久以前在planet gnome 的博客上读过一些关于此的内容。据我所知,与高度换宽度绘图模型有关,这意味着当启用换行时,GtkLabel 等请求足够的高度来重新排列换行宽度的文本,即使有更多可用的水平空间会留下大量空白宽度较宽时的空间。有一个修复,但我恐怕我现在不记得了,我稍后会尝试找到原始帖子。

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

如果您可以忍受固定宽度的列,请将expandFalsefixed-width属性True设置为wrap-widthwidth-chars然后max-width-chars将渲染器的属性设置为相同的值,然后文本将自动换行,而不会产生任何额外的空间。

于 2013-07-12T09:11:34.223 回答