【发布时间】:2010-01-18 20:27:41
【问题描述】:
我可以使用 GTK 的“分配”功能,但这只会给出相对于其父级的位置。如何在窗口中找到 GTK 小部件的绝对位置?
即,如果小部件出现在 500 像素和 300 像素下方,但嵌套在各种 hbox 和表格中,我们如何找出它位于 500x300 像素的位置?
我需要让一个窗口出现在另一个小部件下的确切位置。
谢谢
【问题讨论】:
标签: gtk
我可以使用 GTK 的“分配”功能,但这只会给出相对于其父级的位置。如何在窗口中找到 GTK 小部件的绝对位置?
即,如果小部件出现在 500 像素和 300 像素下方,但嵌套在各种 hbox 和表格中,我们如何找出它位于 500x300 像素的位置?
我需要让一个窗口出现在另一个小部件下的确切位置。
谢谢
【问题讨论】:
标签: gtk
使用gtk_widget_translate_coordinates() 函数将您的子小部件的坐标映射到包含该小部件的顶层坐标。它可能看起来像
GtkWidget *somewidget;
gint wx, wy;
gtk_widget_translate_coordinates(somewidget, gtk_widget_get_toplevel(somewidget), 0, 0, &wx, &wy);
请注意,在许多情况下,强制新窗口的位置是一种错误功能,除非它充当弹出菜单。
【讨论】:
另一种方法:
gint wx, wy;
gdk_window_get_origin (gtk_widget_get_window (somewidget), &wx, &wy);
【讨论】: