[英]Change the label's text everytime a button is pressed
我正在TKINTER中使用FOR做一個PYTHON表,我想每次在ENTRY中放置一個新數字時,標簽都會更改為新表。 例如,一個數字將被放置在ENTRY中,此人將單擊TAB按鈕,單擊該按鈕時,將出現該表格,但是如果該人想要另一個數字,然后再次單擊,則新表將從前一個。 我的解決方案是創建一個擦除上一個表的按鈕,但是當按下該按鈕時,僅刪除最后一個乘法。 我想知道如何單擊tabuada按鈕,而上一個按鈕不使用另一個按鈕就擦除了新按鈕。在下面獲取代碼和照片,謝謝。 觀察:第一張照片顯示了重置按鈕的功能,但是它只是刪除了最后一個乘法,第二張照片顯示了整個乘法。
from tkinter import *
import tkinter as tk
win=tk.Tk()
win.title('Table')
lb=Label(win,text='Type a number:',font='Helvetica 12 bold')
lb.pack()
e=Entry(win)
e.pack()
def click():
global c
c=e.get()
print('requested number ',c)
for b in (range(0, 11)):
global lb2
lb2=Label(text='{} x {} = {} '.format(c, b, int(b)*int(c)))
lb2.pack()
def reset():
lb2['text'] = ' '
bt1=Button(win,text='GO',bg='lightblue',command=click)
bt1.pack()
bt2=Button(win,text='RESET',bg='lightblue',command=reset)
bt2.pack()
win.mainloop()
擦除:
整體乘法:
這是您的代碼的一些修復程序; 確切的含義還不是很清楚: “新表將比上一個表下降。” ,所以我繼續使用新表替換了上一個表。
您的代碼中未定義c
,這引發了異常。
我將標簽的構造放置在功能make_label
,該功能從main
塊調用,並從click()
調用,以在請求新數字時重建它。 reset
丟失了pack
在標簽上以更新顯示的文本的調用。
我認為這應該有助於您朝正確的方向開始; 讓我知道是否有不清楚的地方。
我修改了reset
以便銷毀了標簽並從視圖中重新創建了標簽,從而消除了窗口尺寸的增加。
from tkinter import *
import tkinter as tk
win=tk.Tk()
win.title('Table')
lb=Label(win,text='Type a number:',font='Helvetica 12 bold')
lb.grid(row=0, column=0)
lb2 = Label(text='')
e=Entry(win)
e.grid(row=1, column=0)
c = 2
def click():
global c
c = e.get()
print('requested number ', c)
reset()
make_label(c)
def make_label(c):
global lb2
txt = []
for b in (range(0, 11)):
txt.append('{} x {} = {} '.format(c, b, int(b)*int(c)))
text = '\n'.join(txt)
lb2 = Label(text=text)
lb2.grid(row=4, column=0)
def reset():
global lb2
lb2.destroy()
lb2 = Label()
lb2.grid(row=4, column=0)
make_label(c)
bt1=Button(win,text='GO',bg='lightblue',command=click)
bt1.grid(row=2, column=0)
bt2=Button(win,text='RESET',bg='lightblue',command=reset)
bt2.grid(row=3, column=0)
win.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.