【问题标题】:Load checkbox values depending on txt file根据 txt 文件加载复选框值
【发布时间】:2019-09-25 20:00:04
【问题描述】:

我正在尝试从文本文件加载复选框值。

让我解释一下..

这是屏幕:

Click here for image

我有一段代码可以将结果保存到 .txt 文件中。

这是 .txt 文件:

Click here for image

现在,当我关闭并重新打开 .py 文件时,一切都会重置。

我想实现一个按钮,该按钮将从 txt 文件中加载最后一行并执行以下操作:

如果来自文本文件的option10option21,当单击加载时,option2 复选框将是唯一选中的复选框。

像这样:

Intended result when loading the txt file

如何做到这一点?

这是我当前的代码:

from tkinter import *

master = Tk()
master.minsize(200, 100)

var = IntVar()
var2 = IntVar()

a = Checkbutton(master, text="Option 1", variable=var)
a.pack()

b = Checkbutton(master, text="Option 2", variable=var2)
b.pack()

def save():
    text_file = open("text.txt", "a")
    text_file.write("Option1 %d Option2 %d \n" % (var.get(), var2.get()))
    text_file.close()

Button(master, text = "Save", command = save ).pack()

mainloop()

【问题讨论】:

标签: python tkinter tkinter.checkbutton


【解决方案1】:

这是按照您的要求执行此操作的一种方法。

from tkinter import *
import os

if os.path.isfile('text.txt'):
    with open("text.txt", "r") as f:
        lineList = f.readlines()
        _, option1, _, option2 = lineList[-1].split()
else:
    option1 = '0'
    option2 = '0'

master = Tk()
master.minsize(200, 100)

var = IntVar()
var2 = IntVar()

a = Checkbutton(master, text="Option 1", variable=var)
if option1 == '1':
    a.select()
a.pack()

b = Checkbutton(master, text="Option 2", variable=var2)
if option2 == '1':
    b.select()
b.pack()

def save():
    text_file = open("text.txt", "a")
    text_file.write("Option1 %d Option2 %d \n" % (var.get(), var2.get()))
    text_file.close()

Button(master, text = "Save", command = save ).pack()

mainloop()

但是有理由继续附加到文本文件吗?如果没有,那么在每次保存时覆盖文件会更快更有效。

【讨论】:

  • 嗨 Niels,感谢您抽出宝贵的时间来回答:) 如果我附加,原因是保留日志文件并加载某些数据。我将研究如何将数据添加到具有唯一 ID 号的文本文件中。可能必须转移到 MySql
猜你喜欢
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多