在gtk3中进行Scribble编程

时间:2013-12-23 10:58:44

标签: gtk cairo gtk3

如何使用gtk-3构建一个涂鸦程序。我在gtk-3官方网站上找到了例子,但是在绘图时它使用cairo_rectangle来绘制用户输入。与gtk-2中的gtk_draw_lines()相比,它非常慢。开罗功能无法逐像素捕获数据。

我想要的是,gtk-3中是否有任何函数可以更快地绘制,能够捕获(x,y)点并在绘制区域中按像素到像素绘制点?

1 个答案:

答案 0 :(得分:0)

gdk_draw_lines的文档告诉它已被弃用,因为很久以前所有的绘图都已委托给cairo。文档告诉您可以使用cairo_line_to来连接您的积分,并cairo_stroke在这些积分之间划一条线。

<强>附录:

Cairo是一个矢量图形库:根据设计和目的,它并非设计用于按像素进行像素访问。但是,您可以通过更改变换矩阵来欺骗它,以便它反映您的像素坐标。请查看CTM (Current Transformation Matrix) modification functions,特别是cairo_scale。您可以抓住configure-event的{​​{1}},以便在其大小发生变化时收到通知,并有机会相应地修改CTM。