在gtk.ListStore中指定字段的更好方法

时间:2012-11-01 16:28:45

标签: python gtk pygtk

我有一个ListStore,其中包含很多字段,其中大多数都是相同的:

store = gtk.ListStore(str,str,str,str,str,str,str,str,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,str,)

有没有比这种可怕的重复更好的方式?

编辑:所以最终:

store = gtk.ListStore( *(8*(str,)+14*(gtk.gdk.Pixbuf,)+(str,)) )

我猜的可读性较差,但程序性更具适应性

1 个答案:

答案 0 :(得分:2)

  1. 如果您可以控制ListStore代码,请将它们打包到namedtuple中,并确保它们不会影响内置名称。
  2. 如果您无法控制ListStore代码,请将它们打包成元组并通过gtk.ListStore(*yourtuple)解压缩参数。