我有一个带有多个图标的gtk.IconView。有时我会调整窗口大小以查看更多图标。当我这样做时,生成的额外空间不会在所有列之间平均分配。取而代之的是,将所有这些放到右边,直到有足够的空间容纳新的列。

我没有在the documentation中看到让我自动执行此操作的任何内容。我是否需要检查调整大小的信号,然后手动设置列间距和行间距?如果是这样,我使用哪个调整大小信号。

这是我的意思的图片。我用红色标记了多余的空间。



这就是我希望看到的(当然,间隙实际上是均匀分布的,这与我糟糕的MS Paint工作不同)。

最佳答案

我们已经在Ubuntu成就查看器中遇到了该问题,在设法解决该问题的同时,我将介绍我们的解决方案。

诀窍是将GtkIconView放在GtkScrolledWindow中,并将其hscrollbar_policy设置为“ always”。然后,必须使用检查调整大小信号来在用户调整窗口大小时做出反应(请注意,必须检查大小是否已更改,因为例如在拖动窗口时也会发出信号)。当大小更改时,必须清除并重新创建GtkIconView使用的模型,因为这会触发GtkIconView正确地重新分配新获得的空间(或缩小)。而且,结果是将永远看不到水平滚动条,因为GtkIconView使用的空间恰好等于GtkScrolledWindow使用的空间。

关于python - 如何使IconView中的图标均匀分布?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7968406/

10-09 22:10