1

我想编写一个函数,将字典转换为 Gtk-ListStore,其中 Gtklist-store 应该有 n 列,第一个是字典的键和值,其余的是空字符串。N 应由用户给出。

ListStore 的构造函数需要列的类型。如何以正确的数字指定它们?

这是仅支持 2 或 3 列来演示问题的函数:

def dict2ListStore(dic, size=2):
  if size == 2:
    liststore = Gtk.ListStore(str, str)
    for i in dic.items():
       liststore.append(i)
    return liststore
  elif size == 3:
    liststore = Gtk.ListStore(str, str, str)
    for i in dic.items():
       l = list(i)
       l.append("")
       liststore.append(l)
    return liststore
  else:
    print("Error!")
    return
4

1 回答 1

3
liststore = Gtk.ListStore(*([str] * size))

[str] * size是一个size重复的列表str

func(*args)args是将包含在序列中的值作为多个参数传递的方式。

于 2013-10-05T13:52:53.017 回答