Pygtk对象未初始化

时间:2017-05-20 22:04:21

标签: python pygtk

您好在pygtk应用程序中创建多个对象时,调用其中一些对象返回它们在将内容传递给信号时未初始化(注意值在应用程序中正确显示)

sections = config.sections()
for section in sections:
    box= gtk.Table (3,len(config.options(section)),False)
    box.set_col_spacings(2)
    box.set_row_spacings(2)
    box.show()
    label = gtk.Label(section)
    label.show()
    notebook.append_page (box,label)
    for i,option in enumerate(config.options(section)):
        optionlabel = gtk.Label(option)
        optionvalue = gtk.Entry ()
        optionvalue.set_text(config.get(section,option))
    --> optionvalue.connect("activate", enter_callback,optionvalue, label, optionlabel)
        box.attach(optionlabel,0,1,i,i+1,xoptions=gtk.SHRINK|gtk.FILL,yoptions=gtk.SHRINK)
        box.attach(optionvalue,1,2,i,i+1,yoptions=gtk.SHRINK)
    box.show_all()

起初我认为变量不在范围内,但它们是(我已经测试了几个对象并发现它们在最后3行中工作

Linuxcnc ini.py:70: GtkWarning: IA__gtk_entry_get_text: assertion "GTK_IS_ENTRY (entry) failed
  print (widget.get_text())
None
<gtk.Label object at 0x9f44a54 (uninitialized at 0x0)>
<gtk.Label object at 0x9f44c0c (uninitialized at 0x0)>
0
<gtk.Label object at 0x9f4c8ec (GtkLabel at 0xa1a3350)>
<gtk.Label object at 0x9f4dc0c (GtkLabel at 0xa1a3450)>

1 个答案:

答案 0 :(得分:0)

对于这个我认为你可能需要查看Gtk系统库本身。

(用于生成“.so”,“。dll”或“.dylib”文件的源代码,其中包含Python程序正在访问的例程。)

您可以使用“strings”,“nm”和“objdump”等命令查看此类二进制文件的内容。

但基于错误的性质,看起来修复将在库本身的源代码中完成,而不是Python程序。

对不起,我不能提供更多细节。