0
私はTkinterを使って簡単なユーザーインターフェイスを開発しています。いくつかのチェックボタンとエントリがあり、それらをすべてファイルに保存するためのボタンを設定する必要があります。 これはコードです:TkinterでUI要素の値を取得する
from tkinter import *
import json, sys
class Window(Frame):
def load_config(self,obs,wav):
d = json.load(open('config.txt','r'))
self.conf_dict = d[obs][wav]
def __init__(self,master,observatory,wavelength):
Frame.__init__(self, master)
self.master = master
self.load_config(observatory,wavelength)
r = 0
for k,v in self.conf_dict.items():
r += 1
self.l = Label(master, text=k+':')
self.l.grid(row=r,column=0,padx=10, pady=5)
if isinstance(v,bool):
self.c = Checkbutton(master)
self.c.grid(row=r,column=1,padx=10,pady=5)
else:
self.e = Entry(master)
self.e.insert(END,str(v))
self.e.grid(row=r,column=1,padx=10, pady=5)
self.b = Button(master,text='Save',command=save_callback)
def save_callback(self):
# save new config file with json
if __name__ == '__main__':
root = Tk()
app = Window(root,sys.argv[1],sys.argv[2])
root.mainloop()
最高のアイデアは、直接conf_dict
の値を変更し、save_callback
で辞書を保存することです。これどうやってするの?私はボタンのIDを取得するか、またはそれらをdictにリンクするための何らかの方法が必要です。
注:私はself.c = Checkbutton(master,var=self.conf_dict[k])
で試しましたが、動作しません。
は、チェックボックスの値を取得する必要がありますか?それはチェックされているかどうかを確認するか?あなたが何を求めているのか混乱しています。 – Goralight
もちろん、私はチェックボックスの値が必要です。何が分かりませんか? – RobiNoob