GTK-如何更新gtktextview/gtkentry#C

GTK-如何更新gtktextview/gtkentry#C,gtk,gtkentry,gtktextview,Gtk,Gtkentry,Gtktextview,我正在为立方体卫星创建一个基本的地面控制站,将其分为两部分:命令(没有问题)和遥测。我使用的是C代码和GTK;在遥测窗口t中,每次收到遥测数据包时,我都需要显示一些信息,因此我尝试对每个信息使用gtkview/gtkentry,但我不知道如何更新其中显示的消息 具体来说,一个例子是: //View PACKET NUMBER view = gtk_text_view_new(); frame = gtk_frame_new("Packet number"); gtk_con

我正在为立方体卫星创建一个基本的地面控制站,将其分为两部分:命令(没有问题)和遥测。我使用的是C代码和GTK;在遥测窗口t中,每次收到遥测数据包时,我都需要显示一些信息,因此我尝试对每个信息使用gtkview/gtkentry,但我不知道如何更新其中显示的消息

具体来说,一个例子是:

//View PACKET NUMBER    
 view = gtk_text_view_new();
 frame = gtk_frame_new("Packet number");    
 gtk_container_add(GTK_CONTAINER(frame), view);
 gtk_text_view_set_editable(GTK_TEXT_VIEW(view),FALSE);
 gtk_table_attach(GTK_TABLE(table2),frame,0,1,0,1,GTK_FILL,GTK_FILL,5,5);
 buff = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
 gtk_text_buffer_get_iter_at_offset(buff, &iter, 0);
 gtk_text_buffer_insert(buff, &iter,"waiting", -1);
因此,首先是文本“WAITING”,然后当收到数据包时,我想更新该文本:我如何才能做到这一点

我试图重复这段代码,但用一个引用“packetnumber”的变量更改了“waiting”,但我得到了核心转储

我也尝试过使用这段代码,但我总是遇到同样的问题

viewprova = gtk_entry_new();
frameprova = gtk_frame_new("Packet number");
gtk_container_add(GTK_CONTAINER(frameprova), viewprova);
gtk_entry_set_editable(GTK_ENTRY(viewprova),FALSE);
gtk_table_attach(GTK_TABLE(table2),frameprova,0,1,0,1,GTK_FILL,GTK_FILL,5,5);
gtk_entry_set_text(GTK_ENTRY(viewprova),"waiting");



frameprova = gtk_frame_new("Packet number");    
viewprova = gtk_label_new ("waiting");
gtk_container_add(GTK_CONTAINER(frameprova), viewprova);
gtk_table_attach(GTK_TABLE(table2),frameprova,0,1,0,1,GTK_FILL,GTK_FILL,5,5);   

谢谢你的帮助

接受C字符串的函数,如
gtk_label_new()
不能接受整数,C函数不是多态函数。您需要构建一个字符串表示并传递它,例如使用
snprintf()
将数字格式化为字符串缓冲区。

好的,如果我理解正确,您知道如何设置文本显示小部件,但不知道如何用新内容填充它们,对吗?看看你的代码,看看你在做什么。首先,您要创建一个文本小部件。然后用初始文本填充它。第二部分是您重复的部分:

如果是
GtkEntry
gtk\u条目设置文本(gtk\u条目(viewprova),“我的新文本”)


对于
GtkTextView
(实际上您使用的是底层
TextBuffer
),
gtk\u text\u buffer\u set\u text(buff,“我的新文本”,-1)

没关系,但我也尝试过用另一个文本(尝试)来更改第一个文本(等待),但它总是给我核心转储。你尝试“重复此代码”是什么意思?当然,创建一个全新的Frame+TextView并不仅仅是为了更新文本。你可以发布你用来更新文本视图的代码吗?要更新文本视图,我使用了相同的代码。。。我知道这是个问题,但我不知道该怎么做才对!周期1=我使用“等待”文本创建文本视图周期2=我如何更新它?我尝试过使用相同的代码(这是我在上面报告的第一个代码,但是“等待”更改为我想显示的文本),但是它不起作用(核心转储)。谢谢,我会尝试这个!可能我关闭了我创建界面的部分,所以之后我无法修改它!