您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:21:19 python 字数 3595 阅读 499 来源 www.jb51.cc/python

当我运行我的GTK(Python GObject内省)应用程序时,我有一个警告,我无法弄清楚它的来源.当应用程序加载并且我正在填充GtkListStore时,在我第一次添加行之后,我收到以下警告:/usr/lib/python2.7/site-packages/gi/types.py:44: Warning: g_object_set_qdata: asse

概述

当我运行我的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语句来解决最终程序中的错误

总结

以上是编程之家为你收集整理的python – 神秘的GObject警告:断言`G_IS_OBJECT(object)’失败全部内容,希望文章能够帮你解决python – 神秘的GObject警告:断言`G_IS_OBJECT(object)’失败所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶