编程 Linux下xcb编程之旅(xcblinux)

XCB(X C Binding)是一个用C语言写的X Windowing系统(X11)库,它可以让程序员在Linux系统下创建自定义X11窗口和图形用户界面(GUI),XCB是X Window系统的替代品,用动态库的形式与X11服务器交互并控制窗口的显示。

在编程Linux下的XCB,需要具备一定的C语言基础,安装完Linux系统后,用户可以安装XCB库:

$ sudo apt-get install libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev libxcb-icccm4-dev libyajl-dev libstartup-notification0-dev libxcb-randr0-dev libev-dev libxcb-cursor-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev

编写XCB应用程序,首先要引入相应头文件:

#include /* All xcb functions */ #include /* EWMH functions */

例如,要实现创建一个XCB窗口,可以使用 xcb_create_window() 函数进行:

xcb_window_t window; /* window ID */ xcb_create_window(conn, XCB_COPY_FROM_PARENT, window, /* window id */ screen->root, /* parent window */ 0, 0, /* x, y */ width, height, /* width, height */ 0, /* border width */ XCB_WINDOW_CLASS_INPUT_OUTPUT, /* class */ screen->root_visual, /* visual */ 0, /* masks, not used */ NULL); /* no properties */

上面的代码实现了基本的创建窗口功能,其它XCB相关函数可以根据需求编写。XCB还可以实现更多功能,比如,可以创建一个由几何图形组成的XCB环境:

xcb_point_t points[] = { {10, 10}, {10, 20}, {20, 10}, {20, 20}}; xcb_poly_fill_rectangle(conn, window, gc, /* draw to this window with this GC */ 4, /* number of rectangles */ points);

上面的代码实现了在一个XCB窗口中绘制一个由几何图形组成的环境,可以在这个通用的模版上进行更多的个性化定制。

综上所述,XCB是Linux下一个应用广泛的X Window系统库,它可以让程序员在Linux系统下创建自定义X11窗口和图形用户界面,可以实现更多的功能,比如绘制几何图形等功能,提供了完整的X Window编程模版。


数据运维技术 » 编程 Linux下xcb编程之旅(xcblinux)