如何在Gtk中的HPaned中设置RIGHT窗格的最小和当前大小?

时间:2011-10-17 15:56:42

标签: c# gtk gtk#

我正在尝试在左右窗格之间创建带有可移动分隔符的应用程序窗口。 在左侧窗格中,我有一个ListView。在右侧窗格中,我有一个带有一些标签,条目等的VBox。 我添加了HPaned容器,将ListView添加到其左窗格,将VBox添加到其右窗格。 很简单。

问题就出现了:

  1. 当用户调整窗口大小时,我需要制作右窗格以保存其大小。虽然,似乎唯一受支持的行为是左窗格这样做。

  2. 我需要为右窗格设置一个最小宽度,这样如果用户尝试调整它的大小,它就不会太小,或者,首先出现问题,只需将窗口调整为较小的大小。我没有找到任何办法。实际上,我可以使用Window.SetGeometryHints()在右窗格中为VBox添加最小约束,但这是唯一的方法吗?当我调整窗口大小时,所有这些限制都会使窗口变得不稳定。

1 个答案:

答案 0 :(得分:0)

好的,经过一些实验,我找到了第一个问题的解决方案。 为左窗格子项调用Pack1(widget,true,true)就足够了,为右窗格子项调用Pack2(widget,false,false)。

第二个问题的解决方案是使用Window.SetGeometryHints()为右窗格子项添加MinSize约束,但似乎窗口变为用户不可收缩的内容。

如果有人知道解决第二个问题的正确方法,我们非常感谢您的帮助。