【问题标题】:How to get window origin (position) in mate applet?如何在伙伴小程序中获取窗口原点(位置)?
【发布时间】:2016-04-07 23:38:58
【问题描述】:

我尝试在配对面板小程序中获取窗口原点。
更准确地说,我想知道我的小程序(x 和 y)在屏幕上的位置,因为我有一个显示/隐藏 Gtk.window 的按钮,但我需要将该窗口移动到我的按钮旁边(上方,下方,右,左取决于配对面板的位置)

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

此代码有效但无用:

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

所有其他“使用方式”get_origin(您可以在任何文档中找到)都不起作用,因为它需要 3 个参数(我不知道为什么)

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

【问题讨论】:

  • 这是 pygtk 还是 python-gobject (from gi import)?
  • @andlabs 我猜是 python-gobject from gi.repository import Gtk 和 Gtk 2.0 而不是 Gtk3
  • 我不明白这个问题。使用get_origin() 应该可以。您是在映射窗口后调用它吗?
  • @elya5 如果我能做到x,y = window.get_origin() 我猜,但事实并非如此,它总是返回 1。我尝试过的所有其他功能都按预期工作,所以我需要其他功能相同的东西事物。当我点击我的按钮时我调用它,所以是的,窗口被映射了。

标签: python gtk mate


【解决方案1】:

我找到了替代get_root_coords

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多