3
Gtk上的cairo(一)——draw<sub>area的简单应用</sub>
source link: https://houye.xyz/2014-10/cairoongtk3/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Gtk上的cairo(一)——drawarea的简单应用
Gtk上的cairo(一)——drawarea的简单应用
#include <gtk/gtk.h> /*事件draw的回调函数*/ gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { guint width, height; //获得draw_area的宽度 width = gtk_widget_get_allocated_width (widget); //获得draw_area的高度 height = gtk_widget_get_allocated_height (widget); /*绘制一个圆*/ cairo_arc (cr, width / 2.0, height / 2.0, MIN (width, height) / 2.0, 0, 2 * G_PI); /*设置颜色为红色*/ cairo_set_source_rgb (cr, 1, 0, 0); /*描绘路径,即给cr涂上设置好的颜色*/ cairo_stroke(cr); return FALSE; } int main (int argc, char *argv[]) { GtkWidget *window = NULL; GtkWidget *drawing_area = NULL; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); drawing_area = gtk_drawing_area_new (); gtk_widget_set_size_request (drawing_area, 100, 100); /*连接信号和回调函数*/ g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect (G_OBJECT (drawing_area), "draw", G_CALLBACK (draw_callback), NULL); /*把drawing_area放入window中*/ gtk_container_add (GTK_CONTAINER (window), drawing_area); /*显示控件*/ gtk_widget_show (drawing_area); gtk_widget_show (window); gtk_main(); return 0; }
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK