x程序 Linux,使用XCB编写X Window程序(01):快速起步

x程序 Linux,使用XCB编写X Window程序(01):快速起步估计现在已经没有谁使用 XCB 这么底层的库写应用程序了 要用也是用经过精心封装的 Motif LessTiff GTK Qt EWL ETK 或者 Cairo 等高层次的库 我之所以这么费心地去折腾 XCB 其实主要也是为了学习 毕竟 使用最接近底层的 UI 库写代码是学习 X 协议及 GUI 编程原理的最好方法 XCB 的主要教程可以参考这里 http xcb freedesktop

大家好,我是讯享网,很高兴认识大家。

估计现在已经没有谁使用XCB这么底层的库写应用程序了,要用也是用经过精心封装的Motif, LessTiff, GTK, Qt, EWL, ETK或者Cairo等高层次的库。我之所以这么费心地去折腾XCB,其实主要也是为了学习。毕竟,使用最接近底层的UI库写代码是学习X协议及GUI编程原理的最好方法。

XCB的主要教程可以参考这里:http://xcb.freedesktop.org/tutorial/

和X协议有关的文档,在这里:http://www.x.org/releases/X11R7.7/doc/

在这里要继续吐槽freedesktop.org。没错,XCB的官网又是在freedesktop.org,而且正如我前几篇随笔中提到的Xft、Freetype一样,文档极其不完善。不过在其XcbApi页面有这样的提示“Refactoring this page...please be patient...”,那就耐心等待吧。好在代码是最好的文档,在Fedora 20中安装libxcb-devel软件包后,可以直接到/usr/include/xcb目录下查看XCB库的头文件,所以真要学习XCB也不是很难。如下图,我系统中的XCB库的头文件:

4a7f6a3e96641fe9003a77cd80d3a39a.png
讯享网

下面是一个最简单的XCB程序,它的功能是创建一个窗口。由于没有任何事件处理的机制,所以使用了pause()让程序暂停,要退出程序,必须得按Ctrl+C。

1 #include

2 #include

3 #include

4 #include

5 #include

6

7 double get_time(){

8 struct timeval timeval;

9 gettimeofday(&timeval, NULL);

10 return (double)timeval.tv_sec + (((double)timeval.tv_usec)/);

11 }

12

13 int main(){

14 double star

小讯
上一篇 2025-03-13 17:44
下一篇 2025-03-12 14:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52421.html