Linux第7章Gdk及Cairo基础概要1

第七章 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;

Linux第7章Gdk及Cairo基础,Linux第7章Gdk及Cairo基础概要1.ppt相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第十一章、认识与学习 BASH

    第十一章.认识与学习 BASH 最近升级日期:2009/08/25 在 Linux 的环境下,如果你不懂 bash 是什么,那么其他的东西就不用学了!因为前面几章我们使用终端机下达命令的方式,就是透过 ...

  2. 鸟哥的Linux私房菜(基础篇)- 第七章、Linux 文件与目录管理

    第七章.Linux文件与目录管理 最近升级日期:2009/08/26 在第六章我们认识了Linux系统下的文件权限概念以及目录的配置说明.在这个章节当中,我们就直接来进一步的操作与管理文件与目录吧!包 ...

  3. 鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置

    第六章.Linux的文件权限与目录配置 最近更新日期:2009/08/18 Linux最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要 ...

  4. 鸟哥的Linux私房菜(基础篇)-第五章、首次登陆与在线求助 man page

    第五章.首次登陆与在线求助 man page 最近升级日期:2009/08/17 终于可以开始使用Linux这个有趣的系统了!由于Linux系统使用了异步的磁盘/内存数据传输模式,同时又是个多人多任务 ...

  5. 鸟哥的Linux私房菜(基础篇)-第四章、安装 CentOS 5.x 与多重开机小技巧

    第四章.安装 CentOS 5.x 与多重开机小技巧 最近更新日期:2009/08/11 Linux distributions越作越成熟,所以在安装方面也越来越简单!虽然安装非常的简单,但是刚刚前一 ...

  6. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.3. 安装Linux前的规划)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 3. 安装Linux前的规划 3.1 选择适当的distribution 3.2 主机的服务规划与硬件的关系 3.3 主机硬盘的主要规划 ...

  7. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.3. 有心朝Linux作业系统学习者的学习态度)

    第二章. Linux 如何学习 最近更新日期:2009/08/06 3. 有心朝Linux作业系统学习者的学习态度 3.1 从头学习Linux基础 3.2 选择一本易读的工具书 3.3 实作再实作 3 ...

  8. 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.2. Torvalds的Linux发展)

    第一章.Linux是什么 最近更新日期:2009/08/05 2. Torvalds的Linux发展 2.1 与Minix之间 2.2 对386硬件的多任务测试 2.3 初次释出Linux 0.02 ...

  9. 鸟哥的Linux私房菜(基础篇)- 第二十一章、系统配置工具(网络与打印机)与硬件侦测

    第二十一章.系统配置工具(网络与打印机)与硬件侦测 最近升级日期:2009/09/15 除了手动配置之外,其实系统提供了一个名为 setup 的命令给系统管理员使用喔!这个命令还能够配置网络呢.此外, ...

  10. 《Linux C编程从入门到精通》一第1章 Linux基础1.1 Linux的起源、发展和分类

    本节书摘来自异步社区<Linux C编程从入门到精通>一书中的第1章,第1.1节,作者 宋磊 , 程钢,更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 Li ...

最新文章

  1. 用户画像从0到100的构建思路
  2. linux c 编译器处理警告、错误 #pragma GCC diagnostic ignored -Wunused
  3. css知识点笔记-常用属性
  4. java图遍历求最长路径_如何在Java中使用递归实现矩阵中最长路径的返回
  5. Android对应用程序签名
  6. 二叉树的遍历实现-1(三级)
  7. C4C里产品主数据和销售组织数据维护的相互作用和相互影响
  8. 图像分割-LOG检测器和DOG检测器
  9. 深搜--1-n的全排列
  10. 超详细mac新手教程-Mac界面篇
  11. linux部署moodle
  12. 小米Pro搞Android开发,小米9 Pro真实体验到底如何?半个月上手告诉你!
  13. 小程序 video 控制器外观调整_Kessil 360X Tuna Sun无线控制器使用分享
  14. cleaned_data python
  15. python统计元音字母_统计元音字母
  16. 1082 射击比赛(JAVA)
  17. Mac Mini 安装Ubuntu20.04 KVM
  18. Hive分组 条件 分区排序 CLUSTER BY, Sort By,DISTRIBUTE BY
  19. 个人实名认证的几种方案
  20. Python-Django毕业设计汽车站售票管理系统(程序+Lw)

热门文章

  1. Vmware请选择您要安装的macOS的磁盘
  2. Encrypted traffic 加密流量分类任务进展综述
  3. 记录安装Ubuntu16.04后必须要做的事,杂篇
  4. 2.1.1.15使用WIFI网卡1_准备工作及配置内核
  5. 【日常】我的电影、小说、番剧、歌曲“观看记录清单”
  6. 如何将class文件转换成java文件
  7. 从入门到精通我是这样学习算法的
  8. 2021-10-27 turtle 绘画创意图形(梅花)
  9. 银行业务--负债业务
  10. ESP32学习【2】——ESP32固件烧录及相关问题解决