将数据从文件加载到tkinter widg

2024-09-20 22:19:48 发布

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

因此,我正在tkinter中制作一个项目组织程序,它必须将以前保存的数据从文件加载到tkinter中的一个小部件(最好是一个标签),但我不知道如何只获取文件的第一行

我知道该做什么或从哪里开始

from tkinter import *
import time

opened = open("Opened.txt", 'r')
opened = str(opened.read())

root = Tk()

def Tasks():
    global t1, t2, t3, t4, t5


    t1 = Entry(root)
    t1.grid(row=0, column=1)
    t2 = Entry(root)
    t2.grid(row=1, column=1)
    t3 = Entry(root)
    t3.grid(row=2, column=1)
    t4 = Entry(root)
    t4.grid(row=3, column=1)
    t5 = Entry(root)
    t5.grid(row=4, column=1)

    tl1 = Label(root, text="Task 1")
    tl2 = Label(root, text="Task 2")
    tl3 = Label(root, text="Task 3")
    tl4 = Label(root, text="Task 4")
    tl5 = Label(root, text="Task 5")

    tl1.grid(row=0)
    tl2.grid(row=1)
    tl3.grid(row=2)
    tl4.grid(row=3)
    tl5.grid(row=4)

def save():
    task_file = open("Tasks.txt", 'w')

    tlv1 = t1.get()



    tlv2 = t2.get()



    tlv3 = t3.get()



    tlv4 = t4.get()



    tlv5 = t5.get()






    task_file.write("Task 1:" + str(tlv1) + "\n" + "Task 2:" + str(tlv2) 
+ "\n" + "Task 3:" + str(tlv3) + "\n" + "Task 4:" + str(tlv4) + "\n" + 
"Task 5:" + str(tlv5) + "\n")

    if len(t1.get()) == 0 and len(t2.get()) == 0 and len(t3.get()) == 0 and 
len(t4.get()) == 0 and len(t5.get()) == 0:
        nothing = Button(root, text="Nothing to save, click to close", 
command=lambda: nothing.destroy())
        nothing.grid(row=0, column=3)
        task_file.write(" ")



if opened == "No":
    Tasks()




Save_Entry = Button(root, text="Save Tasks", command=save).grid(row=0, 
column=2)











root.mainloop()

这是我能做的,但它所能做的只是将它保存到一个文件中,它无法将它加载到标签中


Tags: texttaskgetcolumnrootlabelgridrow
1条回答
网友
1楼 · 发布于 2024-09-20 22:19:48

要获取文件的第一行,可以使用readline()

opened = open("Opened.txt", 'r')
first_line= str(opened.readline())
opened.close()

我会注意到,您应该在打开文件后关闭它,并且不希望将文件对象重命名为字符串

要将字符串放入标签中,可以执行以下操作:

w = Label(master, text=first_line)

如果您想保持冷静,请将第一行包装到Stringvar()中,以便使用字符串值更改文本

相关问题 更多 >

    热门问题