2010-08-27 136 views
4

我认为这很容易找到,但谷歌搜索一直非常无益。是否有一个简单的API来更改X窗口中的鼠标光标? (我知道在windows中你可以调用“SetCursor”)C++ - 在X窗口中更改光标

+0

你看过'man Xcursor'吗? – Troubadour 2010-08-27 11:45:54

+1

我开始阅读,但它仍然很难得到好的信息。我想要做的就是“SetCursor(hand)”和“SetCursor(arrow)”。有没有关于如何在某个地方做到这一点的例子? – Chris 2010-08-27 11:58:44

+0

我不会直接触摸X.为什么不Qt,WX,Gtk什么的? – 2010-08-27 11:59:00

回答

4
#include <X11/cursorfont.h> 

/* ... */ 

Cursor c; 

c = XCreateFontCursor(dpy, XC_xterm); 
XDefineCursor(dpy, w, c); 

其中dpy是您的显示器,w是您的窗口,而XC_xterm是定义光标形状的常量。这里的a list of available cursor shape,以及图像。

+0

上有更多详细信息,但这些常量只会让你看到“光标”字体中的丑陋图标。你如何得到WM默认图标阴影和一切? – cap 2015-07-15 01:18:23

2

看起来像一个SetCursor调用的等价物是XDefineCursor。通过调用XCreateFontCursor并传入X11/cursorfont.h中的一个形状,可以获得Cursor ID。

+0

http://tronche.com/gui/x/xlib/pixmap-and-cursor/cursor.html – alanc 2010-08-27 16:48:42