我在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