我已经创建了一个新窗口并希望将其移动到屏幕中心,我该怎么做呢?我试过下面的
gtk_widget_hide (GTK_WIDGET (window));
gtk_window_set_position (window, GTK_WIN_POS_CENTER);
gtk_widget_show_all (GTK_WIDGET (window));
Run Code Online (Sandbox Code Playgroud)
但似乎
gtk_window_set_position (window, GTK_WIN_POS_CENTER)只触发了一次.有什么我做错了吗?
要告诉您的应用程序定位在中心,以下应该有效。但是我对你提到的功能不熟悉,也许它和这种方式一样好。您可以使用 gtk_window_move() 移动窗口,默认情况下坐标是从左上角计算的,但是可以通过以下方式更改:
void gtk_window_set_gravity (GtkWindow *window,
GdkGravity gravity);
Run Code Online (Sandbox Code Playgroud)
可用的枚举如下:
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.
Run Code Online (Sandbox Code Playgroud)
然后使用
void gtk_window_move (GtkWindow *window,
gint x,
gint y);
Run Code Online (Sandbox Code Playgroud)
不确定它会改变初始窗口位置,取决于 Windowmanager 是否遵守,正如 gtk 手册告诉读者的那样,大多数窗口管理器忽略初始窗口位置。
此链接将为您提供有关上述功能的大量信息https://developer.gnome.org/gtk3/3.5/GtkWindow.html#gtk-window-move
| 归档时间: |
|
| 查看次数: |
7057 次 |
| 最近记录: |