我希望Paned小部件中我的两个窗格的默认大小等于宽度或相等的高度。
由于没有明显的设置,我怎样才能正确计算这个尺寸?
答案 0 :(得分:1)
您可以使用get_allocation()
获取已修改窗口小部件的总大小,然后将分隔符的位置设置为该值的一半。
根据您想要的UI,您可以执行一次,或在size-allocate
信号运行后连接处理程序并继续重新计算,直到用户手动调整它为止。
答案 1 :(得分:1)
我在寻求解决同一问题时遇到了这个问题,这是我在某个站点的示例中找到的方法(解决方案是针对宽度,必要时适应于高度):
hpane = Gtk.HPaned()
# hpane.set_wide_handle(True)
hpane.connect("size-allocate", self.hpane_resize_cb)
[...]
def hpane_resize_cb(self, widget, allocation):
if allocation.width != 1:
hpane_pos = 0.5 * allocation.width
widget.set_position(int(hpane_pos + .5))
我仍在处理代码,并将添加代码,以便它存储任何用户修改并在调整窗口大小时保持相同的比例。但这足以使其他人着手解决方案。