Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pygtk窗口在调整大小时移动_Python_Gtk_Pygtk_X11 - Fatal编程技术网

Python pygtk窗口在调整大小时移动

Python pygtk窗口在调整大小时移动,python,gtk,pygtk,x11,Python,Gtk,Pygtk,X11,设置: 操作系统:UbuntuPrecise(12.04)amd64 Python:2.7.3 GTK:2.24.0 WindowManager:metacity和FVWM2都表现出相同的行为 我有一个小的pygtk应用程序,其中包含(在其他小部件中)一个treeview。窗口的resizeable=False,因此当树视图展开/折叠时,窗口会自动调整大小以适应内容。这一切都很好 问题是,当窗口调整大小时,它保持在原来的中心位置。当窗口调整大小时,我希望窗口的左上角保持在同一位置 我发现使用

设置:

  • 操作系统:UbuntuPrecise(12.04)amd64
  • Python:2.7.3
  • GTK:2.24.0
  • WindowManager:metacity和FVWM2都表现出相同的行为
我有一个小的pygtk应用程序,其中包含(在其他小部件中)一个treeview。窗口的resizeable=False,因此当树视图展开/折叠时,窗口会自动调整大小以适应内容。这一切都很好

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

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

我怀疑我需要设置gtk.gdk.HINT_USER_POS,但正如我所知,pygtk版本的set_geometry_hints()不允许我像C和Perl接口那样传递GDKwindowhint

当内容导致窗口大小改变时,如何使窗口左上角保持静止

更新:

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

回调是:

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

虽然这样做有效,但它很难看,所以我还是希望有更好的选择。

通常调整窗口大小时,应该保留左上角。如何调整大小?@n.m.窗口的resizeable=False,因此当树视图展开/折叠时,窗口会自动调整大小以适应内容。我认为您需要将“窗口重力”设置为“西北”。这是默认值,但可能你已经将它设置为某个中心位置了?不,我已经检查了重力,它设置为NW,如果它重新设置为NW,它没有效果。
def fix_window(self):
    self.window.parse_geometry("+%d+%d" % self.window.get_position())