import tkinter as tk
import xml.etree.ElementTree as ET
class App(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.create_widgets()
def create_widgets(self):
self.ent1 = tk.Entry(self, width=50)
self.ent2 = tk.Entry(self, width=50)
self.ent3 = tk.Entry(self, width=50)
self.lb1 = tk.Label(self, text="ent1:")
self.lb2 = tk.Label(self, text="ent2:")
self.lb3 = tk.Label(self, text="ent3:")
self.bt1 = tk.Button(self, text="Read", width=6, command=self.read_xml)
self.bt2 = tk.Button(self, text="Write", width=6, command=self.write_xml)
self.lb1.grid(row=0, column=0, padx=5, pady=5, sticky=tk.W)
self.lb2.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W)
self.lb3.grid(row=2, column=0, padx=5, pady=5, sticky=tk.W)
self.ent1.grid(row=0, column=1, columnspan=2, padx=5, pady=5)
self.ent2.grid(row=1, column=1, columnspan=2, padx=5, pady=5)
self.ent3.grid(row=2, column=1, columnspan=2, padx=5, pady=5)
self.bt1.grid(row=3, column=1, padx=5, pady=5)
self.bt2.grid(row=3, column=2, padx=5, pady=5)
def read_xml(self):
try:
tree = ET.parse('config.xml')
root = tree.getroot()
text_ent1 = root.find("./setting/ent1").text
text_ent2 = root.find("./setting/ent2").text
text_ent3 = root.find("./setting/ent3").text
self.ent1.delete(0, tk.END)
self.ent2.delete(0, tk.END)
self.ent3.delete(0, tk.END)
self.ent1.insert(0, text_ent1)
self.ent2.insert(0, text_ent2)
self.ent3.insert(0, text_ent3)
except Exception:
print("例外エラー")
else:
print("XML読み込み完了")
def write_xml(self):
try:
tree = ET.parse('config.xml')
root = tree.getroot()
text_ent1 = self.ent1.get()
text_ent2 = self.ent2.get()
text_ent3 = self.ent3.get()
root.find("./setting/ent1").text = text_ent1
root.find("./setting/ent2").text = text_ent2
root.find("./setting/ent3").text = text_ent3
tree.write('config.xml')
except Exception:
print("例外エラー")
else:
print("XML書き込み完了")
if __name__ == "__main__":
root = tk.Tk()
app = App(master=root)
app.mainloop()