簡體   English   中英

如何將 gtk+ 窗口設置為屏幕中央?

[英]How to set the gtk+ window to the center of screen?

我創建了一個新窗口,想把它移到屏幕中央,我該怎么做? 我在下面試過

gtk_widget_hide (GTK_WIDGET (window));
gtk_window_set_position (window, GTK_WIN_POS_CENTER);
gtk_widget_show_all (GTK_WIDGET (window));

但似乎gtk_window_set_position (window, GTK_WIN_POS_CENTER)只被觸發一次。 我做錯了什么嗎?

你必須使用gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS) :)

要告訴您的應用程序定位在中心,以下應該起作用。 但是我對你提到的功能不熟悉,也許它和這種方式一樣好。 您可以使用 gtk_window_move() 移動窗口,默認情況下坐標是從左上角計算的,但是可以通過以下方式更改:

void gtk_window_set_gravity (GtkWindow *window,
                             GdkGravity gravity);

可用的枚舉如下:

GDK_GRAVITY_NORTH_WEST, GDK_GRAVITY_NORTH, GDK_GRAVITY_NORTH_EAST,
GDK_GRAVITY_WEST,GDK_GRAVITY_CENTER, GDK_GRAVITY_EAST, 
GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_SOUTH, GDK_GRAVITY_SOUTH_EAST, 
and GDK_GRAVITY_STATIC.

然后使用

void gtk_window_move (GtkWindow *window,
                      gint x,
                      gint y);

不確定它會改變初始窗口位置,取決於 Windowmanager 是否遵守,正如 gtk 手冊告訴讀者的那樣,大多數窗口管理器忽略初始窗口位置。

此鏈接將為您提供有關上述功能的大量信息https://developer.gnome.org/gtk3/3.5/GtkWindow.html#gtk-window-move

我知道這是一個“c”標記的問題,但如果有人尋找Python代碼,這里是:

如果 win 是你的主窗口

win.set_position(Gtk.WindowPosition.CENTER_ALWAYS)

要添加另一個Python答案,您也可以使用,

Gtk.WindowPosition.CENTER_ALWAYS

當你創建一個 Gtk.Window 實例時:

win = Gtk.Window(title="Example Window", window_position=Gtk.WindowPosition.CENTER_ALWAYS)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM