我正在使用带有ListStore的TreeView。我的代码是这样的:
class a:
def __init__(self):
.
.
types = int, str, str, int
myTree, myStore = b.create_treeview(types)
.
.
class b:
def create_treeview(types):
#create gtk tree view object
#return treeview and store (for the columns)
store = gtk.ListStore(types[0], types[1], types[2], types[3])
treeView = gtk.TreeView(store)
treeView.set_rules_hint(True)
return treeView, store
正如您所看到的,b类为b类做了一些代码。 变量 types 帮助我将所有类型发送到商店。问题是我在b级使用它的方式。有没有什么可以让它更通用于重复使用?
谢谢
答案 0 :(得分:2)
除非您在其他地方再次使用,否则无需在types
中定义a
:
myTree, myStore = b.create_treeview((int, str, str, int))
您可以通过以下方式使b
更通用:
store = gtk.ListStore(*types)
将打开"解包"将类型元组转换为ListStore
的单独参数(有关详细说明,请参阅this question)。
Neater仍然可能是:
def create_treeview(*types):
store = gtk.ListStore(*types)
...
现在您可以将单独的参数传递给create_treeview
:
myTree, myStore = b.create_treeview(int, str, str, int)
或者
myTree, myStore = b.create_treeview(*types)