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