Linux “如何进行emmit”;画;来自GTK cairo中函数的信号

Linux “如何进行emmit”;画;来自GTK cairo中函数的信号,linux,gtk,signals,draw,cairo,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_ORIENTATIO

我为我的程序编写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); //用于计算的my函数的代码 GtkWidget*darea; GtkWidget*框; darea=gtk_图纸_区域_新(); gtk_widget_set_size_request(darea,100100); 长方体=gtk_长方体_新(gtk_方向_垂直,0); gtk_-box_-pack_-start(gtk_-box(box)),darea,FALSE,FALSE,0; gtk_table_attach_默认值(gtk_table(table),框,0,1,1,2); g_信号连接(g_对象(darea),“绘制”, G_回调(在_draw_事件上),NULL);
但“draw”信号没有emmit(on_draw_事件回调函数没有启动)。如何在函数中计算后“绘制”信号?谢谢。

小部件重绘时发出“绘制”信号,可在此处找到更详细的文档:

小部件重绘时发出“绘制”信号,可在此处找到更详细的文档:

使用并传递要重绘的小部件:

gtk_widget_queue_draw(darea)
这会为小部件的整个区域发出“绘制”信号。

使用并传入要重画的小部件:

gtk_widget_queue_draw(darea)

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

Hm,你能解释一下如何使用这些功能吗?例如,如果我的draw信号回调函数在draw事件(GtkWidget*小部件、cairo\u t*cr、gpointer用户数据)上看起来像
void
。但是
g_信号由g_名称发出(g_对象(darea),“draw”)无效尝试gtk_widget_queue_draw():嗯,你能解释一下如何使用这些函数吗?例如,如果我的draw信号回调函数在draw事件(GtkWidget*小部件、cairo\u t*cr、gpointer用户数据)上看起来像
void
。但是
g_信号由g_名称发出(g_对象(darea),“draw”)无效尝试gtk_小部件_队列_绘图():