簡體   English   中英

每次按下按鈕時更改標簽的文本

[英]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.

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