如何将ttk progressbar的增量保存到文件中,并在重新打开应用程序时检索增量?

2024-06-28 19:58:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个task manager应用程序,我正在使用tkinter进度条来跟踪过去的记录(例如到目前为止已完成的电话、项目、客户咨询的数量)。在每个新完成的任务之后,用户都会单击一个按钮来增加条形图。其想法是将每个任务类别(进度条)的任务数保存在一个文件中,并在重新打开应用程序后读取

看起来像这样 picture of the tkinter GUI

我尝试了不同的方法,但找不到有效的解决办法。这是我到目前为止所做的代码

当应用程序上次打开时,我无法从以前的输入恢复进度条的值

from tkinter import *
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
from tkinter import ttk
from PIL import ImageTk, Image
import smtplib
import os

overview = Tk()
overview.geometry("600x450")


progress1 = IntVar()
progress2 = IntVar()
progress3 = IntVar()
save1 = "progress"

list_of_files = os.listdir()


def step1():
    global ntotal
    increments = progress1.set(progress1.get() + 5)
    ntotal = int(ntotal) + int(increments)
    file = open(save1, "w")
    file.write(int(ntotal))

    if save1 in list_of_files:
        file3 = open(save1, "r")
        verified = file3.readlines()
        total = verified[0]


def step2():
    progress2.set(progress2.get() + 5)


def step3():
    progress3.set(progress3.get() + 5)


Label(overview, text="Calls", font=("Calibri", 20)).grid(row=1, column=1)
my_progress = ttk.Progressbar(overview, orient=HORIZONTAL, length=500,
                              mode='determinate', variable=progress1).grid(row=2, column=1, ipady=10)
my_button = Button(overview, text="New task complete",
                   command=step1).grid(row=3, column=1)

Label(overview, text="Client Consultations",
      font=("Calibri", 20)).grid(row=4, column=1)
my_progress = ttk.Progressbar(overview, orient=HORIZONTAL, length=500,
                              mode='determinate', variable=progress2).grid(row=5, column=1, ipady=10)
my_button = Button(overview, text="New task complete",
                   command=step2).grid(row=6, column=1)

Label(overview, text="Group projects", font=(
    "Calibri", 20)).grid(row=7, column=1)
my_progress = ttk.Progressbar(overview, orient=HORIZONTAL, length=500,
                              mode='determinate', variable=progress3).grid(row=8, column=1, ipady=10)
my_button = Button(overview, text="New task complete",
                   command=step3).grid(row=9, column=1)


overview.mainloop()

Tags: textfromimporttasktkintermyoverviewcolumn