如何在mate小程序中获取window原点(位置)?

How to get window origin (position) in mate applet?

我尝试在配对面板小程序中获取 window 来源。
更准确地说,我想知道我的小程序(x 和 y)在屏幕上的位置,因为我有一个 show/hide 和 Gtk.window 的按钮,但我接下来需要移动 window到我的按钮(上、下、右、左取决于配对面板的位置)

我找到的唯一方法是调用 get_origin,但有一个问题。它应该 return 一个元组 x,y 但它像 c 函数一样需要两个整数,并且由于 python 使用按值传递当然它不起作用。

此代码有效但无用:

window = self.get_window()
x = 0
y = 0
window.get_origin(x, y)

所有其他 "way to use" get_origin(您可以在任何文档中找到)不起作用,因为它需要 3 个参数(我不知道为什么)

所以我正在寻找一种方法来获取我的小程序的位置(即使它不准确)或将我的 window 移动到我的按钮旁边。

我找到了替代方案get_root_coords

window = self.get_window()
x,y = window.get_root_coords(0, 0)

它甚至可以在多个屏幕上工作,我可以用它把我的 Gtk.Window 移到我的按钮旁边。