【问题标题】:How do you find the absolute position of a GTK widget in a window?如何在窗口中找到 GTK 小部件的绝对位置?
【发布时间】:2010-01-18 20:27:41
【问题描述】:

我可以使用 GTK 的“分配”功能,但这只会给出相对于其父级的位置。如何在窗口中找到 GTK 小部件的绝对位置?

即,如果小部件出现在 500 像素和 300 像素下方,但嵌套在各种 hbox 和表格中,我们如何找出它位于 500x300 像素的位置?

我需要让一个窗口出现在另一个小部件下的确切位置。

谢谢

【问题讨论】:

    标签: gtk


    【解决方案1】:

    使用gtk_widget_translate_coordinates() 函数将您的子小部件的坐标映射到包含该小部件的顶层坐标。它可能看起来像

    GtkWidget *somewidget;
    gint wx, wy;
    gtk_widget_translate_coordinates(somewidget, gtk_widget_get_toplevel(somewidget), 0, 0, &wx, &wy);
    

    请注意,在许多情况下,强制新窗口的位置是一种错误功能,除非它充当弹出菜单。

    【讨论】:

      【解决方案2】:

      另一种方法:

      gint wx, wy;
      gdk_window_get_origin (gtk_widget_get_window (somewidget), &wx, &wy);
      

      【讨论】:

      • 这是屏幕的绝对值,与 GTK 窗口无关!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2015-04-05
      • 1970-01-01
      • 2021-03-02
      相关资源
      最近更新 更多