【发布时间】:2018-04-19 17:56:55
【问题描述】:
我正在使用 Tkinter 开发一个简单的用户界面。我有一些检查按钮、条目,我应该设置一个按钮将它们全部保存在一个文件中。 这是代码:
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 或将它们链接到字典。
注意:我尝试使用 self.c = Checkbutton(master,var=self.conf_dict[k]),但它不起作用。
【问题讨论】:
-
需要抓取复选框的值吗?所以要检查它是否被检查?我对你到底要什么感到困惑。
-
是的,我当然需要复选框的值。什么不清楚?
标签: python python-3.x user-interface tkinter tk