加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 神秘的GObject警告:断言`G_IS_OBJECT(object)’失败

发布时间:2020-12-16 22:16:27 所属栏目:Python 来源:网络整理
导读:当我运行我的GTK(Python GObject内省)应用程序时,我有一个警告,我无法弄清楚它的来源.当应用程序加载并且我正在填充GtkListStore时,在我第一次添加行之后,我收到以下警告: /usr/lib/python2.7/site-packages/gi/types.py:44: Warning: g_object_set_qdata:

当我运行我的GTK(Python GObject内省)应用程序时,我有一个警告,我无法弄清楚它的来源.当应用程序加载并且我正在填充GtkListStore时,在我第一次添加行之后,我收到以下警告:

/usr/lib/python2.7/site-packages/gi/types.py:44: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed
  return info.invoke(*args)

其余的行追加而没有任何进一步的警告.实际上,它总是只被提升一次,总是在第一个要追加的项目上.但是,该行的实际内容似乎并不重要;它无论如何都会提出警告.当程序完成加载时,当我在TreeView中浏览它们时,所有行似乎都没问题.

我的列表商店看起来像这样:

self.list_store = Gtk.ListStore(bool,str,GdkPixbuf.Pixbuf,object,Pango.Weight)

最后几列是从关联的GtkTreeView中隐藏的,但警告发生在TreeView创建之前,所以我确定它来自ListStore.Needless说,我确信我传递的所有行都在正确的格式,因为,就像我说的那样,警告总是在第一行之后引发,无论我先添加哪一行.

有谁知道是什么原因引起的?它并没有阻止我的应用程序运行,所以它不是紧急情况,但我宁愿不让它为最终用户吐出警告.

编辑:
我确认使用Python的-W all命令行参数,实际上是为所有行引发了警告.

我尝试使用pdb进入append()方法,但是,当它尝试设置包含GdkPixbuf的列的值时,它会卡在gi代码的循环中,所以我从未真正看到调试程序时出现的警告.我的猜测是Pixbuf导致问题,但我不知道如何更改它以摆脱警告. Pixbuf在TreeView中正确呈现,所以我不确定发生了什么.

最佳答案
对此疯狂猜测……

PyGTK似乎在创造奇怪的错误方面非常有才华 – 特别是那些让我们疯狂追逐的错误.我已经打了六到七个不同的错误,最终只是掩盖了另一个问题……有时甚至是一个无关的问题.

同样,运行谷歌搜索显示这已被记录,但可能没有解决……? (一个这样的例子:https://bugs.launchpad.net/ubuntu/+source/jockey/+bug/814991)

如果这没有抛出任何错误,也许你应该编写一个catch语句来解决最终程序中的错误?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读