2013-06-18 28 views
0

我为我的程序编写GUI。如何从GTK开罗的函数中取消“绘制”信号

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

 
    //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); 

但是“draw”信号没有emmit(on_draw_event回调函数没有启动)。在我的函数中计算后我怎样才能“画出”信号?谢谢。

回答

1

“画”信号emited当构件被redrawed,更详细的文档可以在这里找到:gtkwidget - draw signal

+0

谢谢,但我怎么能emite从代码中得出的信号? – user2496946

+0

'g_signal_emit_by_name()' – LiuLang

+0

嗯,你能解释我如何使用这些函数吗?例如,如果我的draw信号的回调函数看起来像'void on_draw_event(GtkWidget * widget,cairo_t * cr, gpointer user_data)''。但'g_signal_emit_by_name(G_OBJECT(darea),“draw”);'不起作用 – user2496946