繁体   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