如何在 GTK C 中隐藏鼠标指针
How to hide mouse pointer in GTK C
我有一个使用 gtk 和 c 制作的应用程序。它以全屏模式运行并在标签上显示数据。我需要在应用程序启动时隐藏鼠标指针,然后在应用程序停止时取消隐藏。
怎么做。
这是我的主window:
GtkWidget *window = NULL;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request((window),640,480);
gtk_widget_realize (window);
gtk_window_fullscreen((GtkWindow*)window);
呸,那是一个弃用的兔子洞!
从快速浏览文档来看,目前最好的选择似乎是 gdk_seat_grab()
函数。它有一堆参数,其中一个是 GdkCursor *
。光标在抓取处于活动状态时设置。
您应该可以将 gdk_cursor_new_for_display()
与 GDK_BLANK_CURSOR
结合使用来获得空白光标。
您可以使用gdk_display_get_default()
函数获得默认显示。这通常就足够了,除非您需要考虑多显示器支持;无论如何,这应该可以让您开始使用 API。
其实你不需要gdk_seat_grab()
;你真正想要的是 gdk_window_set_cursor()
。对于使用不可见游标,您可以使用 gdk_cursor_new_from_name()
加载 "none"
游标,这通常由 GDK 后端实现显式处理为 return 空白游标。 The Cursors example in gtk3-demo gives you an example of how to use it.
请注意,这意味着如果 GTK+ 出于任何原因无法实现您的 window,您将不得不重置光标。所以你可能想连接到两个实现信号来做分配。
我是这样做的:
GdkCursor* Cursor = gdk_cursor_new(GDK_BLANK_CURSOR);
GdkWindow* win = gtk_widget_get_window((window));
gdk_window_set_cursor((win),Cursor);
我有一个使用 gtk 和 c 制作的应用程序。它以全屏模式运行并在标签上显示数据。我需要在应用程序启动时隐藏鼠标指针,然后在应用程序停止时取消隐藏。
怎么做。
这是我的主window:
GtkWidget *window = NULL;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request((window),640,480);
gtk_widget_realize (window);
gtk_window_fullscreen((GtkWindow*)window);
呸,那是一个弃用的兔子洞!
从快速浏览文档来看,目前最好的选择似乎是 gdk_seat_grab()
函数。它有一堆参数,其中一个是 GdkCursor *
。光标在抓取处于活动状态时设置。
您应该可以将 gdk_cursor_new_for_display()
与 GDK_BLANK_CURSOR
结合使用来获得空白光标。
您可以使用gdk_display_get_default()
函数获得默认显示。这通常就足够了,除非您需要考虑多显示器支持;无论如何,这应该可以让您开始使用 API。
其实你不需要gdk_seat_grab()
;你真正想要的是 gdk_window_set_cursor()
。对于使用不可见游标,您可以使用 gdk_cursor_new_from_name()
加载 "none"
游标,这通常由 GDK 后端实现显式处理为 return 空白游标。 The Cursors example in gtk3-demo gives you an example of how to use it.
请注意,这意味着如果 GTK+ 出于任何原因无法实现您的 window,您将不得不重置光标。所以你可能想连接到两个实现信号来做分配。
我是这样做的:
GdkCursor* Cursor = gdk_cursor_new(GDK_BLANK_CURSOR);
GdkWindow* win = gtk_widget_get_window((window));
gdk_window_set_cursor((win),Cursor);