GTK+ study (2) Cairo和GTK+用户自定义控件

Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, XCB, BeOS, OS/2, and DirectFB.

详见:http://cairographics.org/


利用GTK+进行GUI开发时,如果发现GTK+提供的标准控件无法满足要求,则可以考虑自己写一个控件,根据GTK+提供的实现自定义控件的方式来做。

而在绘制自定义控件的时候,可以利用GTK+提供的标准控件,当然也可以利用Cairo这样的图形库自己来绘制更炫的东西。


关于Cairo的图形绘制,可以参考:

http://liyanrui.is-programmer.com/?category_id=1735&page=3

或者 GTK+中文社区:

http://118.112.185.72/columns-gtk-action-columns.html


根据GTK+提供的实现自定义控件的大致步骤如下:

  • 实现类结构和对象结构
  • 填定GtkTypeInfo结构并注册控件
  • 自定义信号及相关函数(emit, connect, event callback function)的实现


具体实现可以参考:

1.简单GTK+自定义控件的创建

http://www.ibm.com/developerworks/cn/linux/l-gtkcntrl/

2.Writing a Widget Using Cairo and GTK+2.8

http://gnomejournal.org/article/34/writing-a-widget-using-cairo-and-gtk28
http://gnomejournal.org/article/36/writing-a-widget-using-cairo-and-gtk28-part-2

3.Custom GTK widget

http://zetcode.com/tutorials/cairographicstutorial/customgtkwidget/

另外,可以参考Cairo-dock这个开源软件:
http://www.oschina.net/p/cairo+dock


你可能感兴趣的:(quartz,include,output,gtk,postscript)