def set_frame(self, root):
scr_frame = ScrolledFrame(root)
entries = {}
stringvars = {}
row_id = 0
set_btn = ttk.Button(scr_frame.frame, text='Set', command=self.set_params)
set_btn.grid(row=row_id, column=3, sticky="ew")
refresh_btn = ttk.Button(scr_frame.frame, text='Refresh', command=self.get_params)
refresh_btn.grid(row=row_id, column=4, sticky="ew")
recalc_btn = ttk.Button(scr_frame.frame, text='Recalc', command=self.recalc)
recalc_btn.grid(row=row_id, column=5, sticky="ew")
save_btn = ttk.Button(scr_frame.frame, text='SaveConfig', command=self.save_config)
save_btn.grid(row=row_id, column=6, sticky="ew")
row_id += 1
for idx, field in enumerate(self.shared_fields):
lbl = ttk.Label(scr_frame.frame, text = field, anchor='w', width = 8)
lbl.grid(row=row_id, column=idx+2, sticky="ew")
if field in self.entry_fields:
ent = ttk.Entry(scr_frame.frame, width=4)
ent.grid(row=row_id+1, column=idx+2, sticky="ew")
ent.insert(0, "0")
entries[field] = ent
elif field in self.status_fields:
v= get_type_var(self.field_types[field])
lab = ttk.Label(scr_frame.frame, textvariable = v, anchor='w', width = 8)
lab.grid(row=row_id+1, column=idx+2, sticky="ew")
v.set('0')
stringvars[field] = v
row_id += 2
local_entry_fields = [ f for f in self.entry_fields if f not in self.shared_fields]
local_status_fields = [ f for f in self.status_fields if f not in self.shared_fields]
fields = ['assets'] + local_entry_fields + local_status_fields
for idx, field in enumerate(fields):
lbl = ttk.Label(scr_frame.frame, text = field, anchor='w', width = 8)
lbl.grid(row=row_id, column=idx, sticky="ew")
row_id += 1
for underlier in self.underliers:
under_key = ','.join(underlier)
inst_lbl = ttk.Label(scr_frame.frame, text=under_key, anchor="w", width = 8)
inst_lbl.grid(row=row_id, column=0, sticky="ew")
col_id = 1
entries[under_key] = {}
for idx, field in enumerate(local_entry_fields):
ent = ttk.Entry(scr_frame.frame, width=5)
ent.grid(row=row_id, column=col_id+idx, sticky="ew")
ent.insert(0, "0")
entries[under_key][field] = ent
col_id += len(local_entry_fields)
stringvars[under_key] = {}
for idx, field in enumerate(local_status_fields):
v= get_type_var(self.field_types[field])
lab = ttk.Label(scr_frame.frame, textvariable = v, anchor='w', width = 8)
lab.grid(row=row_id, column=col_id+idx, sticky="ew")
v.set('0')
stringvars[under_key][field] = v
row_id +=1
self.entries = entries
self.stringvars = stringvars
self.get_params()
评论列表
文章目录