GTK+开发中的打印、绘图与最近文件管理
1. GTK+打印操作
在GTK+开发中,打印操作是一个重要的功能。当进行打印时,可通过相对前一位置移动光标,轻松在每行文本间添加任意间距,但需在begin-print回调函数计算页数时考虑额外高度。
当所有页面渲染完成后,会发出end-print信号。以下是处理此信号的回调函数示例:
/* Clean up after the printing operation since it is done. */ static void end_print (GtkPrintOperation *operation, GtkPrintContext *context, Widgets *w) { g_strfreev (w->data->lines); g_slice_free1 (sizeof (PrintData), w->data); w->data = NULL; }GTK+提供的打印API非常庞大,此示例仅用于入门,帮助减轻学习曲线的难度。若要在应用中实现打印功能,还需深入研究相关API。
2. Cairo绘图上下文
Cairo是一个广泛用于GTK+库的图形渲染库,在打印操作中用于页面渲染。下面介绍cairo_t对象及相关绘图函数。
2.1 绘制路径
在Cairo上下文中,形状通