2013-02-16 42 views
1

我正在用C編寫一個相對簡單的消息程序,並且希望將我的消息查看窗口放置在屏幕的一個特定角落,所以它不方便。將GTK窗口放在屏幕的一角

的文檔列出的功能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的工作幾乎是一個新手,甚至更直接地使用(已使用PyGTK的代替)的GTK界面的新手,所以我甚至不知道從哪裏開始尋找合適的現在。

回答

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的文檔。