调整大小时pygtk窗口移动

时间:2013-10-07 01:37:54

标签: python gtk pygtk x11

设定:

  • OS:Ubuntu Precise(12.04)amd64
  • Python:2.7.3
  • GTK:2.24.0
  • WindowManager:metacity和FVWM2都表现出相同的行为

我有一个小的pygtk应用程序,包含(在其他小部件中)树视图。窗口具有resizable = False,因此树视图展开/折叠时,窗口会自动调整大小以适合内容。这一切都很好。

问题是当窗口调整大小时,它会保持居中的位置。当窗口调整大小时,我希望窗口的左上角保持在同一位置。

我发现用+ x + y位置调用parse_geometry()会产生所需的行为。但这并不总是一种选择。在典型的情况下,我希望窗口打开鼠标所在的位置,而不是在固定的位置。

我怀疑我需要设置gtk.gdk.HINT_USER_POS,但是我可以说,pygtk的set_geometry_hints()版本不允许我像C和Perl接口一样传递GdkWindowHints。

如何让窗口的左上角保持不变,因为内容会导致窗口改变大小?

更新

由于parse_geometry()为我设置位,就在gtk.main()之前,我调用

gobject.timeout_add(500, self.fix_window)

回调是:

def fix_window(self):
    self.window.parse_geometry("+%d+%d" % self.window.get_position())

虽然这很有效,但它很难看,所以我仍然会欣赏更好的选择。

0 个答案:

没有答案