我有一个使用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);
答案 0 :(得分:1)
从快速浏览文档看,目前最好的选择是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);