我正在使用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),所以我甚至不知道从哪里开始看。
答案 0 :(得分: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)
函数调用来确定屏幕数。
供参考,请查看GdkDisplay,GdkScreen和multi-heading的文档。