我一直在尝试使用tkinter CheckButton小部件编辑列表中的项目-列表中的每个项目都是一个新的CheckButton。我需要一个save方法将数据保存到文本文件,以及一个load方法从文本文件加载信息,并根据列表中的项目标记复选框
这是到目前为止我的代码,但是当我检查按钮并更新列表/文件时,列表似乎没有改变
这是我的代码,我需要知道当我选中复选框时列表为什么没有更新:
import tkinter.messagebox as box
modulesMain = Tk()
moduleChecks = []
def SaveChanges():
# Clear the text file
modules = open("modules.txt", "w") #Write mode to overwrite the whole file
modules.write("") # Put in blank text
modules.close()
modules = open("modules.txt", "a") # Append mode to append the file
for item in moduleChecks:
modules.write(item + "\n")
print(moduleChecks)
appButton = Checkbutton(modulesMain, text = "Test", variable = moduleChecks[0]).grid()
searchButton = Checkbutton(modulesMain, text = "Test", variable = moduleChecks[1]).grid()
Save = Button(modulesMain, text = "Save Changes", command = SaveChanges).grid()
每个复选框的变量必须是
IntVar
。您的moduleCheck
列表当前未初始化,因此当您尝试访问其中的元素时,将出现错误在下面的代码(由您修改)中,我初始化了
moduleCheck
以包含两个IntVars。 当您按下保存按钮时,它将向控制台打印复选框的当前状态这里有一个可运行的示例,我认为它展示了如何完成您所要求的一切。它假定
modules.txt
文件包含以下格式的数据,其中每一行由模块名称以及是否选中组成文件中的数据用于创建
Checkbutton
列表(每个模块一个),并初始设置为文件中指示的当前状态以下是示例代码:
这是一个基本的解决方案
相关问题 更多 >
编程相关推荐