为什么在调用gtk_main()之后GTK小部件无法访问

时间:2014-01-23 14:56:12

标签: c linux gtk gtk3 gdk

我有一个重要的问题。我正在写一个中等规模的计划,其中显示了土耳其各个地区的当前天气状况。天气数据基本上更新了以下代码片段,这些代码片段存在于它自己的功能中

  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在运行时是否取消引用或销毁对所有小部件的所有引用?如何保留现有代码而不是使用信号进行这些更改?非常感谢帮助。

0 个答案:

没有答案