首页 > 解决方案 > 如何获取复选框值以保存到文本文件中?

问题描述

这是我的python代码:

from tkinter import *
master = Tk()

def var_states():
   print("Option 1: %d\nOption 2: %d" % (var1.get(), var2.get()))

Label(master, text="Option").grid(row=0, sticky=W)
var1 = IntVar()
Checkbutton(master, text="Option 1", variable=var1).grid(row=1, sticky=W)
var2 = IntVar()
Checkbutton(master, text="Option 2", variable=var2).grid(row=2, sticky=W)
Button(master, text='Quit', command=master.quit).grid(row=3, sticky=W, pady=4)
Button(master, text='Show', command=var_states).grid(row=4, sticky=W, pady=4)




mainloop()

这将打开以下屏幕:

在此处输入图像描述

如果选中并单击一个复选框,则显示 CMD 的输出是这样的:

在此处输入图像描述

接下来,我尝试将输出保存到 .txt 文件中。这是我尝试过的:

f = open("output.txt", "w")
f.write(var_states())
f.close()

#open and read the file after the appending:
f = open("output.txt", "r")
print(f.read())

但这会给我返回以下错误:TypeError: write() argument must be str, not None

但是,如果我将其转换f.write(var_states())f.write(str(var_states()))

它完成了这项工作,但会打印None到 .txt 文件中。

当 CMD 输出它时,如何获取复选框值以保存到 .txt 文件中?

标签: pythontkinteroutput

解决方案


你的var_states函数实际上并没有返回任何东西。它只是打印到控制台。将其更改为:

def var_states():
   res = "Option 1: %d\nOption 2: %d" % (var1.get(), var2.get())
   print(res)
   return res

此外,您应该使用以下命令,而不是手动opening 和ing 文件:closewith

with open("output.txt", "w") as f:
  f.write(var_states())

#open and read the file after the appending:
with open("output.txt", "r") as f:
  print(f.read())

close该文件在块的末尾自动d with


推荐阅读