2

我正在用 GTK 用 C 语言编写一个相对简单的消息传递程序,并且想将我的消息查看窗口放在屏幕的特定角落,所以它不碍事。

文档列出了一个函数gtk_window_set_gravity,指定其坐标相对于窗口的哪个角,并通过跟踪其他信息gtk_window_move,发现以下代码会将窗口定位在屏幕的右下角,忽略多头场景

gtk_window_set_gravity(GTK_WINDOW(win), GDK_GRAVITY_SOUTH_EAST);
gtk_window_move(GTK_WINDOW(win), gdk_screen_width() - window_width, gdk_screen_height() - window_height);

我几乎是使用 GTK 的新手,甚至更多的是直接使用 GTK 界面的新手(一直在使用 PyGTK),所以我什至不知道现在从哪里开始寻找。

4

1 回答 1

1

原来这个问题的答案可以在 GDK 中找到,而不是在 GTK 中。

以下代码是我设法弄清楚的:

GdkDisplay *display = gdk_display_get_default();
// 0 for the first screen, as we're only concerned about the first one
GdkScreen *screen = gdk_display_get_screen(display, 0);
screen_width = gdk_screen_get_width(screen);
screen_height = gdk_screen_get_height(screen);

gdk_display_get_n_screens(display)请注意,如果您对除第一个屏幕之外的任何屏幕感兴趣,则需要使用函数调用来确定屏幕数量。

作为参考,请查看GdkDisplayGdkScreenmulti-heading的文档。

于 2013-02-20T11:07:51.683 回答