【发布时间】:2014-02-24 22:59:09
【问题描述】:
我在执行该行时收到此警告:
self.builder.add_from_file(self.glade_file)
GtkWarning:IA__gtk_widget_set_size_request:断言“GTK_IS_WIDGET(小部件)”失败
self.builder.add_from_file(self.glade_file)
GtkWarning: IA__gtk_container_add: 断言 `GTK_IS_CONTAINER (container)' 失败
self.builder.add_from_file(self.glade_file)
GtkWarning: IA__gdk_window_get_width: 断言 `GDK_IS_WINDOW (window)' 失败
self.builder.add_from_file(self.glade_file)
GtkWarning: IA__gdk_window_get_height: 断言 `GDK_IS_WINDOW (window)' 失败
self.builder.add_from_file(self.glade_file)
GtkWarning:IA__gtk_widget_reparent:断言 `widget->parent != NULL' 失败
self.builder.add_from_file(self.glade_file)
网络上所有谈论类似警告的文章都错过了一步,我非常需要它。
哪里出错了?? 我的林间空地文件包含超过 200 个对象,如何检测警告的确切对象以纠正它? 此警告的来源是哪一行?
【问题讨论】:
-
我猜问题不在于构建器文件,而在于代码。只是预感:您是否在某个时候破坏了小部件(可能在关闭窗口时破坏了窗口)?你能说明为什么使用 add_from_file() 的上下文(而不是普通的 new_from_file() 构造函数)吗?
-
是的,窗口在关闭时被破坏。但是警告发生在代码启动时(更早)
-
我会试试 new_from_file()。
-
反馈:self.builder.new_from_file(self.glade_file) >>> AttributeError: 'gtk.Builder' object has no attribute 'new_from_file'|||代码的第一行是: > #!/usr/bin/python >import pygtk >pygtk.require('2.0') >import gtk >import gtk.glade
-
我的评论似乎与旧版 GTK 无关:Builder.new_from_file() 是相当新的。抱歉误导。
标签: python python-2.7 gtk pygtk glade