如何从GTK cairo中的函数中发出“绘制”信号

时间:2013-06-18 11:38:11

标签: linux gtk signals draw cairo

我为我的程序编写GUI。

我的函数进行一些计算并接收数据数组。我想用cairo绘制这些数据。

    //code of my function for calculation

    GtkWidget *darea;
    GtkWidget *box;
    darea = gtk_drawing_area_new();
    gtk_widget_set_size_request (darea, 100, 100);
    box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
    gtk_box_pack_start (GTK_BOX (box), darea, FALSE, FALSE, 0);
    gtk_table_attach_defaults(GTK_TABLE(table), box, 0, 1, 1, 2);

    g_signal_connect(G_OBJECT(darea), "draw", 
        G_CALLBACK(on_draw_event), NULL);

但“绘制”信号不会发出(on_draw_event回调函数无法启动)。在我的函数计算后如何发出“绘制”信号?感谢。

2 个答案:

答案 0 :(得分:1)

在绘制小部件时会发出

'draw'信号,可在此处找到更详细的文档:gtkwidget - draw signal

答案 1 :(得分:1)

使用gtk_widget_queue_draw()并传递您希望重绘的小部件:

gtk_widget_queue_draw(darea)

这会在小部件的整个区域发出“绘制”信号。