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

この問題の答えは、GTKではなくGDKにあります。

次のコードは私が理解できたものです:

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)最初の画面以外の画面に関心がある場合は、関数呼び出しを使用して画面数を決定する必要があることに注意してください。

参考までに、 GdkDisplayGdkScreen、およびmulti-headingのドキュメントを確認してください。

于 2013-02-20T11:07:51.683 に答える