PyGTK曲线内存错误

时间:2011-04-18 13:02:30

标签: python memory pygtk

我需要绘制图表。我使用gtk.Curve小部件。当我给他添加一个长矢量时,它给了我这个错误:

  

GLib-ERROR **:/build/buildd/glib2.0-2.26.1/glib/gmem.c:170:无法分配4294967276字节   中止...

代码很简单:

w = gtk.Window()
c = gtk.Curve()
c.set_vector(v)
c.set_curve_type(gtk.CURVE_TYPE_SPLINE)
w.add(c)
w.show_all()
gtk.main()

向量是一个很长的列表:

  

[0.80000000000000004,0.29999999999999999,0.29999999999999999,0.80000000000000004,0.90000000000000002,0.20000000000000001,...]

此列表中约有800个元素。任何人都知道这个问题是什么? THX

1 个答案:

答案 0 :(得分:1)

我不知道为什么但是gtk.Curve似乎无法操纵主循环之外的数据。尝试使用类似的东西在主要调用之后添加数据。

import random, gtk, gobject

def createCurve(c):
    v = [random.random() for i in range(800)]
    c.set_vector(v)
    c.set_curve_type(gtk.CURVE_TYPE_SPLINE)
    return True

c = gtk.Curve()
vb = gtk.VBox()
vb.pack_start(c, True, True)
w = gtk.Window()
w.add(vb)
w.show_all()
gobject.timeout_add(2000, createCurve, c)
gtk.main()