在屏幕上确定GTK小部件的位置以创建相关的弹出窗口

时间:2011-08-27 07:05:08

标签: popup gtk

我有一个标记为导入的按钮(向下箭头),我正在尝试确定它的位置,因此我可以创建一个弹出菜单,说明1.从设备2.从文件夹。

我似乎找不到api文档中的分配,这与应用程序窗口有关。请帮忙,我会发送假想的饼干^ _ ^。

如果重要的话,使用PyGI。

2 个答案:

答案 0 :(得分:0)

您可以使用window.get_position()获取窗口相对于屏幕的位置。由于您已经知道如何获得按钮相对于窗口的位置,因此应该将两者相加以获得放置弹出窗口的坐标(相对于屏幕)。

答案 1 :(得分:0)

我之前想出了答案,但还不能自己回答。

流程如下:

  1. 确定GdkWindow的位置,该位置不包含窗口装饰。 :gdk_window_x,gdk_window_y
  2. 确定小部件相对于它的GdkWindow的位置 :widget_x,widget_y

    x = gdk_window_x + widget_x

    y = gdk_window_y + widget_y

  3. 因为图形世界中的所有内容都是从左上角开始测量的(除非你很奇怪:-)),现在你的小部件的左上角像素位置。