Pygtk - Как получить данные из Treeview?
Какой способ получить данные TreeView?
У меня есть несколько строк, и я хотел бы сохранить данные в файле XML, но я не знаю, как сохранить данные строк для передачи создателю функции XML.
Большое спасибо!
Спасибо за ваш ответ! Вот некоторый код:
def create_xml(self, path, model):
from lxml import etree
print len(model) #that's work
self.model = self.treeview.get_model()
if(len(model) > 0):
root = etree.Element("lista_tareas")
iter = self.model.get_iter_first()
contatore = 1
while iter:
#from here doesn't work,
# 'gtk.ListStore' object has no attribute 'COL_DESCRIZIONE'
descrizione_c = self.model.get_value(iter, self.model.COL_DESCRIZIONE)
data_limite_c = model.get_value(iter, COL_DATA_LIMITE)
priorita_c = model.get_value(iter, COL_PRIORITA)
realizzato_c = model.get_value(iter, COL_REALIZZATO)
root.append(etree.Element("tarea", _id = contatore, realizzato = realizzato_c, data_limite = data_limite_c, priorita = priorita_c))
root.appendSubElement(tarea, "description")
tarea.text = descrizione_c
iter = model.iter_next(iter)
outFile = open('homemade.xml', 'w')
doc.write(outFile)
Это кнопка, которая вызывает функцию:
self.save_button.connect("clicked", self.create_xml, self.model_add)
1 ответ
А) Вы можете легко получить доступ к модели, которая содержит данные treeview
с treeview.get_model()
и возвращенный объект может быть легко повторен. Трудно сказать, как именно вам нужно это сделать, поскольку вы не предоставляете никакого кода. В любом случае. здесь должно быть много примеров работы над стековым потоком, как работать с древовидными представлениями и древовидными моделями.
Б) Затем вам нужно создать xml-структуру и сохранить ее, для которой вы можете использовать etree
(среди прочего, но я нахожу его простым в использовании) http://docs.python.org/library/xml.etree.elementtree.html