我已经创建了一个新窗口并希望将其移动到屏幕中心,我该怎么办呢?我试过下面
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)
只触发一次。我做错了吗?
答案 0 :(得分:6)
您必须使用gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS)
:)
答案 1 :(得分:4)
要告诉您的申请在中心位置,以下内容应该有效。然而,我对你提到的功能并不熟悉,也许它和这种方式一样好。 您可以使用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
功能的大量信息答案 2 :(得分:3)
我知道这是一个带有“ c”标记的问题,但是如果有人寻找 Python 代码,则为:
如果胜利是您的主窗口
win.set_position(Gtk.WindowPosition.CENTER_ALWAYS)