オプションメニューのウィジェットとエントリウィジェットからユーザー入力をファイルに保存しようとしていますが、入力ウィジェットのユーザー入力が正しく保存されていないという問題があります。以下は私のコードです。tkinter OptionMenu&Entryウィジェットの内容をファイルに保存するには?
from tkinter import *
class ComputeTax:
def __init__(self, master):
self.compute_tax_frame = Frame(master)
self.compute_tax_frame.pack()
self.tax_status_label = Label(self.compute_tax_frame, text="input tax status:")
self.tax_status_label.grid(row=0, column=0, sticky=E)
self.status_option = StringVar(self.compute_tax_frame)
self.status_option.set("S")
self.tax_status_option = OptionMenu(self.compute_tax_frame,
self.status_option, "S", "M", "M1", "M2", "M3", "M4",
command=self.save_ts)
self.tax_status_option.grid(row=0, column=1, sticky=W)
self.monthly_salary_label = Label(self.compute_tax_frame, text="input monthly pay:")
self.monthly_salary_label.grid(row=1, column=0, sticky=E)
self.salary_input = StringVar(self.compute_tax_frame)
self.salary_input.set("0.00")
self.monthly_salary_input = Entry(self.compute_tax_frame,
textvariable=self.salary_input)
self.monthly_salary_input.grid(row=1, column=1)
self.calculate_button = Button(self.compute_tax_frame, text="Save & Calculate now!")
self.calculate_button.grid(row=3, columnspan=2)
def save_ts(self, value):
tax = value
pay = self.salary_input.get()
with open("monthly_net_pay", "w") as file:
file.write("{}\n".format(tax))
file.write("{}\n".format(pay))
file.close()
frame = Tk()
a_compute_class = ComputeTax(frame)
frame.title("Monthly Tax & Net Pay Computation")
frame.mainloop()
!完璧に動作します。どうもありがとうございます! – raymund
あなたの歓迎とその場合は、私の答えを受け入れてください。 [私の質問に誰かが答えたときに何をすべきですか?_(http://stackoverflow.com/help/someone-answers) – martineau
P.S.私はまた、あなたの他によくコーディングされたtkinterアプリケーションであなたを称賛したいと思っていました。 BTW、[New Mexico Tech](http://www.nmt.edu/)には、オンラインの[** _ Tkinter reference _ **](http://infohost.nmt.edu/tcc/help/pubs/tkinter/)があります。 web/index.html)が役に立つかもしれません。 – martineau