3

设置:

  • 操作系统:Ubuntu Precise (12.04) amd64
  • 蟒蛇: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())

虽然这可行,但它很丑,所以我仍然希望有一个更好的选择。

4

0 回答 0