1
저는 PyGtk를 사용하여 트리 뷰에 문자열 정보를 표시하고 있습니다. 다음은 내 코드를 간다 :PyGtk의 set_model 메소드가 세 번째 열의 첫 번째 열 값을 복제하는 이유는 무엇입니까?
def create_table(self):
self.mainbox = gtk.ScrolledWindow()
self.mainbox.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.window.add(self.mainbox)
model = gtk.ListStore(str, str, str)
self.treeview = gtk.TreeView(model=None)
col = gtk.TreeViewColumn("Element")
self.treeview.append_column(col)
cell = gtk.CellRendererText()
col.pack_start(cell, expand=False)
col.set_attributes(cell, text=0)
col = gtk.TreeViewColumn("Test")
self.treeview.append_column(col)
cell = gtk.CellRendererSpin()
col.pack_start(cell, expand=False)
col.set_attributes(cell, text=1)
col = gtk.TreeViewColumn("Command")
self.treeview.append_column(col)
cell = gtk.CellRendererSpin()
col.pack_start(cell, expand=False)
col.set_attributes(cell, text=0)
cell = gtk.CellRendererCombo()
self.mainbox.add(self.treeview)
self.mainbox.set_size_request(500, 260)
self.mainbox.show()
self.vbox.pack_start(self.mainbox, expand=False, fill=True, padding=0)
그런 다음, 나는 이벤트 버튼 후 트 리뷰를 채우는 방법을 만들었습니다.
def create_model(self, beats_me_param):
model = gtk.ListStore(str, str, str)
elements = []
tests = []
commands = []
table_information = self.get_organized_table()
for i in table_information:
for dicts in i:
for element in dicts.keys():
elements.append(element)
for i in table_information:
for dicts in i:
for value in dicts.values():
tests.append(value[0])
commands.append(value[1])
for i in range(len(elements)):
model.append([elements[i], tests[i], commands[i]])
self.treeview.set_model(model)
: 호출 :
def populate_treeview_button(self):
button = gtk.Button(label='Populate Table')
button.connect("clicked", self.create_model)
self.vbox.pack_start(button, expand=False, fill=True, padding=0)
상기 방법은 (키 요소 (문자열) 및 값 2 문자열리스트이고 I는 table_information 특성에 dicts 목록을 수신) 내 treeview에서 결과를 보았다, 나는 세 번째 열에 첫 번째 열의 동일한 가치를 가지고 물론 그들은 다릅니다.
"추가"순간에 요소의 순서가 변경되고 동일하게 발생하면 값이 변경되지만 변경된 값은 세 번째 열에서 반복됩니다. 무슨 일있어?