GTK常用接口——绘图
来源:互联网 发布:二维码生成软件 编辑:程序博客网 时间:2024/05/16 07:38
绘图
//实现过程
//在曝光事件信号"expose_event"所连接的回调函数里进行相应的绘图操作
gboolean callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
// 绘图的相关操作
return FALSE; //如果窗口里有其他控件,函数必须返回FALSE,否则窗口里的控件会被绘图覆盖
}
//Cairo环境
//Cairo环境保存着所有的图形状态参数,这些参数描述了图形的构成,譬如线条宽度、颜色、要绘制的外观(Surface)以及其它一些信息
//需要包含的头文件:#include <cairo.h>
//创建Cairo环境
cairo_t* gdk_cairo_create (GdkDrawable *drawable);
//回收所有Cairo环境所占用的内存资源
void cairo_destroy (cairo_t *cr);
//Cairo简单图形的绘制
//在Cairo中,绘图要从一条空路径开始,首先定义一条路径,然后通过绘制/填充操作使之可见
//定义路径前,通常需要一些简单的设置,如线的宽度,线的颜色
//线宽的设置
void cairo_set_line_width (cairo_t *cr, double width);
//颜色的设置
void cairo_set_source_rgb (cairo_t *cr, double r, double g, double b);
r,g,b: 0.0-1.0
//直线
//设置直线的起点与终端坐标
void cairo_move_to (cairo_t *cr, double x,double y);
void cairo_line_to (cairo_t *cr, double x, double y);
//矩形
//设置矩形路径
void cairo_rectangle (cairo_t *cr, double x, double y, double width, double height );
x,y: 矩形的起点坐标
width,heigh: 矩形的宽度和高度
//圆形
//设置圆的路径
void cairo_arc (cairo_t *cr, double xc, double yc, double radius, double angle1, double angle2);
xc,yc: 圆的起点坐标; radius: 圆的半径
angle1: 起始角; angle2: 终止角
//绘制或填充
//绘制cairo环境的路径
void cairo_stroke (cairo_t *cr);
void cairo_stroke_preserve (cairo_t *cr);
//区别: cairo_stroke()所绘制的路径,在绘制完成后会清除,而cairo_stroke_preserve()函数会将它绘制的路径依然保存在cairo环境中
//填充cairo环境的闭合路径
void cairo_fill (cairo_t *cr);
//写字
//设置字体风格
void cairo_select_font_face (cairo_t *cr, const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight);
family: 字体风格,可使用 "fc-list" 命令查看系统所安装字体
slant: 倾斜模式
weight: 加粗模式
//设置字体的大小
void cairo_set_font_size (cairo_t *cr, double size);
//写字
void cairo_show_text (cairo_t *cr, const char *utf8);
//utf8: 如果要显示中文,必须是utf8的编码
//绘画
//设置画图的图片
void gdk_cairo_set_source_pixbuf (cairo_t *cr, const GdkPixbuf *pixbuf, double pixbuf_x, double pixbuf_y );
pixbuf: 图片资源对象
pixbuf_x,pixbuf_y: 画图的起点位置
//绘制设置好的图片
void cairo_paint (cairo_t *cr);
//实现过程
//在曝光事件信号"expose_event"所连接的回调函数里进行相应的绘图操作
gboolean callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
// 绘图的相关操作
return FALSE; //如果窗口里有其他控件,函数必须返回FALSE,否则窗口里的控件会被绘图覆盖
}
//Cairo环境
//Cairo环境保存着所有的图形状态参数,这些参数描述了图形的构成,譬如线条宽度、颜色、要绘制的外观(Surface)以及其它一些信息
//需要包含的头文件:#include <cairo.h>
//创建Cairo环境
cairo_t* gdk_cairo_create (GdkDrawable *drawable);
//回收所有Cairo环境所占用的内存资源
void cairo_destroy (cairo_t *cr);
//Cairo简单图形的绘制
//在Cairo中,绘图要从一条空路径开始,首先定义一条路径,然后通过绘制/填充操作使之可见
//定义路径前,通常需要一些简单的设置,如线的宽度,线的颜色
//线宽的设置
void cairo_set_line_width (cairo_t *cr, double width);
//颜色的设置
void cairo_set_source_rgb (cairo_t *cr, double r, double g, double b);
r,g,b: 0.0-1.0
//直线
//设置直线的起点与终端坐标
void cairo_move_to (cairo_t *cr, double x,double y);
void cairo_line_to (cairo_t *cr, double x, double y);
//矩形
//设置矩形路径
void cairo_rectangle (cairo_t *cr, double x, double y, double width, double height );
x,y: 矩形的起点坐标
width,heigh: 矩形的宽度和高度
//圆形
//设置圆的路径
void cairo_arc (cairo_t *cr, double xc, double yc, double radius, double angle1, double angle2);
xc,yc: 圆的起点坐标; radius: 圆的半径
angle1: 起始角; angle2: 终止角
//绘制或填充
//绘制cairo环境的路径
void cairo_stroke (cairo_t *cr);
void cairo_stroke_preserve (cairo_t *cr);
//区别: cairo_stroke()所绘制的路径,在绘制完成后会清除,而cairo_stroke_preserve()函数会将它绘制的路径依然保存在cairo环境中
//填充cairo环境的闭合路径
void cairo_fill (cairo_t *cr);
//写字
//设置字体风格
void cairo_select_font_face (cairo_t *cr, const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight);
family: 字体风格,可使用 "fc-list" 命令查看系统所安装字体
slant: 倾斜模式
weight: 加粗模式
//设置字体的大小
void cairo_set_font_size (cairo_t *cr, double size);
//写字
void cairo_show_text (cairo_t *cr, const char *utf8);
//utf8: 如果要显示中文,必须是utf8的编码
//绘画
//设置画图的图片
void gdk_cairo_set_source_pixbuf (cairo_t *cr, const GdkPixbuf *pixbuf, double pixbuf_x, double pixbuf_y );
pixbuf: 图片资源对象
pixbuf_x,pixbuf_y: 画图的起点位置
//绘制设置好的图片
void cairo_paint (cairo_t *cr);
- GTK常用接口——绘图
- GTK常用接口——窗口
- GTK常用接口——布局
- GTK常用接口——按钮、标签
- GTK常用接口——日历、定时器
- GTK常用接口——事件处理
- GTK常用接口——图片、图片控件
- GTK常用接口——进度条、滚动窗口、分栏列表
- GTK常用接口——信息对话框、文本选择对话框
- GTK常用接口——行编辑、复选框、下拉框
- GTK 绘图相关函数
- matlab 可视化 —— 常用绘图函数
- GTK+编程入门(2)—GTK+程序结构
- GTK进阶学习:绘图事件
- GTK进阶学习:绘图事件
- GTK+ 常用链接
- GTK常用函数
- 如何使用gtk+在窗体上绘图
- 30分钟内让你明白正则表达式是什么
- Android KK将libdrm 和DrmProvider移除掉
- android.view.InflateException 错误常见原因及解决办法
- ubuntu12.04->mini2440移植内核模块
- 【LeetCode题解】Search Insert Position
- GTK常用接口——绘图
- 将Ogre写入MFC框架中
- #R#R语言-常用一些函数杂记
- stm32f407VG gpio详解
- gdb调试命令
- stack溢出 ** stack smashing detected ***: ./a.out terminated
- 手工建库
- container_of宏分析
- 云存储-创业