簡體   English   中英

如何更新Tkinter標簽?

[英]How to update Tkinter labels?

單擊按鈕如何獲取Tkinter標簽以進行更新? 我正在創建一個Tkinter程序來讀取和寫入文件,然后將每行打印到標簽中。 我有一節將文本添加到文件中,因此我需要一種方法來更新標簽。

到目前為止,這是我的代碼:

from Tkinter import *
import sys
f=open("stats")
line1=f.readline()
line2=f.readline()
line3=f.readline()
line4=f.readline()
line5=f.readline()
line6=f.readline()
line7=f.readline()
line8=f.readline()
line9=f.readline()
line10=f.readline()

def write():
      f=open("stats", "w")
      f.write(e1.get())
      f.write(" ")
      f.write(e2.get())
      f.write("\n")
      e1.delete(0, END)
      e2.delete(0, END)

root=Tk()
root.title("Basketball Stats")
l1=Label(text="Player").grid(column=0, row=0)
l2=Label(text="Number").grid(column=0, row=1)
e1=Entry().grid(column=1, row=0)
e2=Entry().grid(column=1, row=1)
b1=Button().grid(column=1, row=3)
b1.config(text="Submit", command=write)
l3=Label(text=line1).grid(column=0, row=4)
l4=Label(text=line2).grid(column=0, row=5)
l5=Label(text=line3).grid(column=0, row=6)
l6=Label(text=line4).grid(column=0, row=7)
l7=Label(text=line5).grid(column=0, row=8)
l8=Label(text=line6).grid(column=0, row=9)
l9=Label(text=line7).grid(column=0, row=10)
l10=Label(text=line8).grid(column=0, row=11)
l11=Label(text=line9).grid(column=0, row=12)
l12=Label(text=line10).grid(column=0, row=13)
root.mainloop()

編輯:從我認為您正在嘗試使代碼變得更加pythonic的角度來看。 我簡化了制作標簽的過程,同時允許將新輸入附加到“統計信息”(而不覆蓋現有內容)。 現在,每次按下“提交”按鈕時,您的寫入功能將在底部添加一個新標簽。

from Tkinter import *
import sys

def write():
    new_player = e1_var.get() + " " + e2_var.get()
    with open('stats', 'a') as file:
        file.write("\n" + new_player + "\n")

    players[new_player] = Label(text=new_player).grid(column=0)
    e1_var.set("")
    e2_var.set("")

root=Tk()
root.title("Basketball Stats")
l1=Label(text="Player").grid(column=0, row=0)
l2=Label(text="Number").grid(column=0, row=1)

e1_var = StringVar()
e1 = Entry(textvariable=e1_var).grid(column=1, row=0)

e2_var = StringVar()
e2 = Entry(textvariable=e2_var).grid(column=1, row=1)

b1=Button(text="Submit", command=write).grid(column=1, row=3)

players = {}
with open("stats", "r") as file:
    for line in file.read().split('\n'):
        players[line] = Label(text=line).grid(column=0)

root.mainloop()

這是您的新的更好的代碼!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM