我有一种情况,我在框架上创建一些复选框和一个“保存”按钮。单击该按钮将保存复选框的当前“检查状态”并关闭框架(框架具有另一个框架,因为它是父框架)。 “检查状态”存储在单独的.py文件列表中。
还有另一个按钮,点击它会在复选框上恢复那些相同的检查值。我不确定这里有什么方法:是否保存复选框对象本身并加载它们或每次创建新的复选框并在它们上应用检查状态值。
由于我是python GUI概念的新手,这个问题已经占据了我的一段时间,任何帮助都会非常感激。
P.S:如果需要任何细节让问题更清楚,请告诉我。 编辑:这是我尝试过的一个很小的代表:#file that generates the checkboxes (part of a bigger code)
var_list=[] #list of the variables of the checkbox objects
load_status = savedata.load() #fetch the saved status list from another file, if it exists
if len(load_status)!=0: #if the checkboxes have already been created before
for count in range(len(var_list)):
if load_status[count] == 0:
var_list[count].set(0) #set/apply the values from the status list
else:
var_list[count].set(1)
return
def check(var_list):
check_status_list=[]
for i in range(len(var_list)):
c = var_list[i].get()
check_status_list.append(c) #the status of the checkboxes that is stored in another file
var = IntVar()
var_list.append(var)
poll_check = ttk.Checkbutton(parent,variable=rr,command=lambda:check(var_list))
poll_check.place(x=x1,y=y1)
x1=x1+15
当我点击保存按钮时,状态列表(check_status_list)存储在另一个文件中。在单击第三个按钮('load')时,我首先获取状态列表,然后(尝试)在已经存在的复选框对象上设置值。
请随意指出这种方法存在的(显然)愚蠢的错误。