我有一个重要的问题。我正在写一个中等规模的计划,其中显示了土耳其各个地区的当前天气状况。天气数据基本上更新了以下代码片段,这些代码片段存在于它自己的功能中
g_object_set(wsrc[num]->statusImage, "file", wsrc[num]->image_path);
set_text(wsrc[num]->text2, deg_temp);
使用以下函数调用此函数:
g_main_context_invoke()
来自一个单独的线程,即一个" gtk_main()"调用.wsrc是结构数组,其中保存了天气数据和显示它的相应小部件。从一个单独的线程触发第一个片段而不是一个gtk_main()运行导致以下错误并且没有更改
(dashboard:16664): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed
(dashboard:16664): Gtk-CRITICAL **: gtk_label_set_text: assertion `GTK_IS_LABEL (label)' failed
虽然我能够通过printf访问wsrc中的其他元素,但不能访问小部件。 gtk在运行时是否取消引用或销毁对所有小部件的所有引用?如何保留现有代码而不是使用信号进行这些更改?非常感谢帮助。