我在C++中使用C风格的GTK函数,我无法弄清楚如何为主窗口设置光标。如何将光标更改为GTK for C的手表?
3
A
回答
6
使用由gdk_cursor_new()
4
张贴这是因为关于获得GdkWndow注释无人接听至今创造了GdkCursor gdk_set_cursor()
(https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#gdk-window-set-cursor)
。
对于大多数小部件,可以将GdkWindow作为GtkWidget结构的窗口数据字段进行检索。下面的代码将光标放在一个GtkWindow窗口小部件:
GtkWidget* win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GdkCursor* watchCursor = gdk_cursor_new(GDK_WATCH);
/* set watch cursor */
gdk_window_set_cursor(win->window, watchCursor);
/* return to normal */
gdk_window_set_cursor(win->window, NULL);
如果你需要得到来自其子部件之一的GtkWindow祖先,你可以使用:
GtkWidget* win = gtk_widget_get_ancestor(someWidget, GTK_TYPE_WINDOW);
0
杰夫的回答没有为我工作(Gtk3)。因此,这里是我的解决方案:
GdkWindow* win = gtk_widget_get_parent_window(widget);
GdkCursor* watchCursor = gdk_cursor_new(GDK_WATCH);
gdk_window_set_cursor(win, watchCursor);
0
我的解决办法:
void gtkSetCursor(GdkCursorType cursorType) {
GdkScreen * screen = gdk_screen_get_default();
GdkWindow * win = gdk_screen_get_root_window(screen);
GdkCursor * cursor = gdk_cursor_new(cursorType); //http://developer.gimp.org/api/2.0/gdk/gdk-Cursors.html
gdk_window_set_cursor(win, cursor);
while (gtk_events_pending()) gtk_main_iteration();
}
...
gtkSetCursor(GDK_WATCH);
start your stuff here
...
end of your stuff
gtkSetCursor(GDK_LEFT_PTR);
0
使用gdk_window_set_cursor()
由gdk_cursor_new_from_name()
创建一个GdkCursor。
要获取GtkWindow的GdkWindow,您可以使用gtk_widget_get_window()
,因为GtkWindow是GtkWidget的子类。
注意:这个答案比idefixs answer(重要的更正+链接更新+小修改以使答案完成+改进的格式)作为编辑被拒绝的一个改进。
相关问题
- 1. 如何在Windows手机中将光标更改为手形?
- 2. 徘徊Gtk时更改光标::图片
- 3. 如何将按钮光标更改为手?
- 4. WPF将鼠标光标更改为抓取时的手
- 5. 将鼠标光标更改为箭头
- 6. 如何更改光标
- 7. 如何使用GLUT(在窗口中)更改为手形光标?
- 8. 将光标更改为单个JList值
- 9. DragDrop - 将光标更改为USER-DEFINED CustomCursor
- 10. 将光标更改为圆形?
- 11. 将光标更改为加载动画
- 12. Java将光标更改为图像
- 13. 如何将光标悬停在标签上时将其改变为手形?
- 14. 如何将光标位置更改为VB中的picturebox位置
- 15. 如何将光标更改为JavafX中的圆形?
- 16. 摆动:将光标更改为等待光标
- 17. 将默认光标样式更改为自定义光标
- 18. Qt - 将光标更改为沙漏并禁用光标
- 19. C#Winforms - 更改鼠标光标图标
- 20. 如何更改gtk-entry图标大小?
- 21. 将光标改为CTE
- 22. 如何更改鼠标光标图标?
- 23. 如何更改光标类型
- 24. 更改nicescroll手形光标到默认光标
- 25. 将光标指针更改为自定义图标
- 26. C#更改全局鼠标光标
- 27. 如何将光标样式更改为悬停在图表上的指针?
- 28. 宣传单张 - 如何更改抓取手形光标?
- 29. in flex如何在鼠标悬停时更改光标(手形光标)..eg图像或图表...效果
- 30. 如何更改按钮上的光标?
是的我想通了,但问题是我不能得到我的主窗口的gdkwindow。我已经看到了gtkmm和pygtk的样本,但没有看到C的样本 – 2012-04-22 00:35:01