我正在为 CubeSat 创建一个基本的地面控制站,将其分为两部分:命令(没有问题)和遥测。我正在使用 C 代码和 GTK;在遥测窗口中,每次收到遥测数据包时,我都需要显示一些信息,因此我尝试对每个信息使用 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”,然后当收到一个数据包时,我想更新该文本:我该怎么做?
我尝试重复此代码,但使用引用“数据包号”的变量更改“等待”,但我获得了核心转储
我也试过这段代码,但我总是遇到同样的问题。
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);
谢谢您的帮助!