Linux第7章Gdk及Cairo基础,Linux第7章Gdk及Cairo基础.ppt

Linux第7章Gdk及Cairo基础

第七章 Gdk及Cairo绘图基础 §7.1 GDK和Xlib X窗口系统带有一套低级的库函数,称为Xlib。Xlib提供了许多对X窗口的屏幕进行操作的函数。 GTK提供的构件库不直接使用Xlib,而是使用GDK库。差不多每个Gdk函数都是一个相应Xlib函数的封装,但隐藏了Xlib的某些复杂性(和功能) 。 创建普通的图形接口应用程序,使用GTK就可以了。但如果需要开发新构件或者要创建绘图程序,则需要使用GDK库,甚至Xlib库。 §7.2 GdkWindow GdkWindow是Xlib窗口对象的封装。一个GdkWindow代表屏幕上的一个区域,可以显示或隐藏,也可以捕获事件,还可以在里面绘制文本及图像。 GdkWindow是以树状结构组织的, X服务器和窗口管理器管理了一棵窗口的全局树。每一个窗口都可以有子窗口。子窗口相对于父窗口定位,子窗口会被父窗口剪裁。 X窗口是X服务器上的一个对象。X客户使用一个独一无二的整数ID号引用某个窗口。所有的窗口操作都发生在服务器上,并且所有与X窗口打交道的函数都要通过网络传输。 GdkWindow本质上是服务器端对象的一个句柄(由X服务器返回的整数ID)。它保存一些信息的本地拷贝(比如说窗口的尺寸),所以一些Gdk操作比相应的Xlib操作效率更高。 §7.2 GdkWindow 创建和销毁GdkWindow §7.3 视件和颜色表 概念 在X窗口系统中,像素代表在一个颜色查找表中的入口。一种颜色就是一组红、绿、蓝(RGB)值。 视件(visual)描述了某种特定视频硬件的显示形式,决定像素的位模式如何转换为一个可见的颜色,定义了颜色表如何工作。 §7.3 视件和颜色表 §7.3 视件和颜色表 颜色和GdkColormap GDK使用GdkColor存储RGB值和像素值,像素的内容依赖于视件。 §7.3 视件和颜色表 颜色和GdkColormap §7.4 可绘区和pixmap 可绘区 §7.4 可绘区和pixmap §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.5 事件 §7.6 Cairo概念 Cairo 是采用 C 语言实现 的用于绘制二维矢量图形的库,支持矣量图形、图像的合成。自2.8版之后,Cairo已是Gtk+的一个组成部分,Gtk+的大多数图形绘制都是通过Cairo实现的。 Cairo 支持多种后端 (backend): X Window 系统 Win32 GDI Mac OS X Quartz PNG PDF PostScript SVG 可使用 Cairo 库在 Windows、Linux/BSD、OSX 等平台的窗口中绘图,也可以使用Cairo库生成 PNG 图片、PDF/PostScript/SVG 文件。 §7.7 绘图模型——名词 §7.7 绘图模型——名词 §7.7 绘图模型——动作 §7.7 绘图模型——动作 §7.7 绘图模型——动作 End of chap 7 * Unix/Linux程序环境 第7章 Gdk及Cairo绘图基础 * Unix/Linux程序环境 * * typedef struct { gchar *title;// 窗口标题(顶层窗口有效) gint event_mask;// 窗口的事件屏蔽,它决定这个窗口接收什么事件 gint x, y;// 相对于父窗口坐标 gint width;// 宽度 gint height;// 高度 GdkWindowClass wclass; // 窗口类 GdkVisual *visual;// 视件(描述了一个显示器的颜色处理特征) GdkColormap *colormap; // 颜色表(包含了用于绘画的颜色) GdkWindowType window_type; // 窗口类型 GdkCursor *cursor;// 窗口的光标 gchar *wmclass_name;// 不使用 gchar *wmclass_class;// 不使用 gboolean override_redirect;// 设置为TRUE表示禁止窗口管理器对窗口的管理 GdkWindowTypeHint type_hint;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值