def save(self):
assert self.m_filename
if self.g_latex_radio.get_active():
format = "latex"
else:
format = "html"
doc = et.Element("sheet", fileformat_version=self.current_fileformat_version,
creator="GNU Solfege",
app_version=buildinfo.VERSION_STRING)
doc.append(et.Comment(""))
et.SubElement(doc, "title").text = self.g_title.get_text()
et.SubElement(doc, "output_format").text = format
for sect in self.m_sections:
s = et.Element("section")
et.SubElement(s, "title").text = sect['title']
et.SubElement(s, "filename").text = sect['filename']
# only the harmonic and melodic intervals have this variable:
if 'intervals' in sect:
et.SubElement(s, 'intervals').text = "%s" % sect['intervals']
# We do save 'count' because this variable say how many questions
# we want to generate, and len(questions) will just say how many
# are generated now.
et.SubElement(s, "count").text = "%i" % sect['count']
et.SubElement(s, "line_len").text = "%i" % sect['line_len']
et.SubElement(s, "qtype").text = "%i" % sect['qtype']
for qdict in sect['questions']:
q = et.SubElement(s, "question")
t = et.SubElement(q, "teachers")
et.SubElement(t, "name").text = qdict['answer']['name']
et.SubElement(t, "music").text = qdict['answer']['music']
t = et.SubElement(q, "students")
et.SubElement(t, "name").text = qdict['question']['name']
et.SubElement(t, "music").text = qdict['question']['music']
doc.append(s)
tree = et.ElementTree(doc)
f = open(self.m_filename, 'w')
print >> f, '<?xml version="1.0" encoding="utf-8"?>'
tree.write(f, encoding="utf-8")
f.close()
self.m_changed = False
评论列表
文章目录