如何在GTK C中隐藏鼠标指针

时间:2017-06-09 08:39:21

标签: c gtk mouse

我有一个使用gtk和c创建的应用程序。它以全屏模式运行并在标签上显示数据。我需要在应用程序启动后立即隐藏鼠标指针,然后在应用程序停止时取消隐藏它。

怎么做。

这是我的主窗口:

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);      

3 个答案:

答案 0 :(得分:1)

Phew,这是一个贬低的兔子洞!

从快速浏览文档看,目前最好的选择是gdk_seat_grab()函数。它有一堆参数,其中一个是GdkCursor *。抓取处于活动状态时设置光标。

您应该能够gdk_cursor_new_for_display()使用GDK_BLANK_CURSOR来使用空白光标。

您可以使用gdk_display_get_default()功能获取默认显示。除非您需要考虑多显示器支持,否则通常就足够了;无论如何,这应该让你开始使用API​​。

答案 1 :(得分:0)

你实际上并不需要gdk_seat_grab();你真正想要的是gdk_window_set_cursor()。对于使用不可见的游标,您可以使用gdk_cursor_new_from_name()加载"none"游标,这通常由GDK后端实现显式处理以返回空白游标。 The Cursors example in gtk3-demo gives you an example of how to use it.

请注意,这意味着如果GTK +因任何原因未能实现您的窗口,您将重置光标。因此,您可能希望连接到两个实现信号来进行分配。

答案 2 :(得分:0)

我就是这样做的:

GdkCursor* Cursor = gdk_cursor_new(GDK_BLANK_CURSOR);
GdkWindow* win = gtk_widget_get_window((window));
gdk_window_set_cursor((win),Cursor);
相关问题