如何在Tkinter | Python 3.6中清除文本框中的文本
我在删除“labelresult”文本框中的文本时遇到问题。我曾尝试使用在堆栈溢出上找到的一些解决方案,但都不起作用。任何帮助都将不胜感激如何在Tkinter | Python 3.6中清除文本框中的文本,tkinter,textbox,Tkinter,Textbox,我在删除“labelresult”文本框中的文本时遇到问题。我曾尝试使用在堆栈溢出上找到的一些解决方案,但都不起作用。任何帮助都将不胜感激 from tkinter import * from random import randint def encrypt(): encrypted = "" encCode1 = str(encCode.get()) try: encNum1 = int(encNum.get()) except ValueE
from tkinter import *
from random import randint
def encrypt():
encrypted = ""
encCode1 = str(encCode.get())
try:
encNum1 = int(encNum.get())
except ValueError:
labelresult = Label(myGUI, text="You did not use a number please try again").grid(row=7, column=2)
if (encNum1 == 0):
encNum1 = randint(-38,4)
for letter in encCode1:
if letter == " ":
encrypted += " "
else:
encrypted += chr(ord(letter)+encNum1)
labelresult = Label(myGUI, text=encrypted).grid(row=7, column=2)
myGUI=Tk()
myGUI.geometry("700x300")
myGUI.title("Encrypter/Decrypter")
encCode=StringVar()
encNum=StringVar()
label1=Label(myGUI,text="Use the two boxes under this text to Encrypt", fg="red").grid(row=0,column=2)
label2=Label(myGUI,text="Enter the code to be encrypted").grid(row=2,column=0)
label3=Label(myGUI,text="Enter a number between -38 and 4 to encrypt with").grid(row=3,column=0)
myn=Entry(myGUI,textvariable=encCode).grid(row=2, column=2)
mys=Entry(myGUI,textvariable=encNum).grid(row=3, column=2)
button1=Button(myGUI,text="Calculate Encrypted Code",command=encrypt).grid(row=4,column=0)
myGUI.mainloop()
与python中的任何其他对象一样,如果要在对象创建后对其进行操作,则必须保留对该对象的非本地引用。这不是tkinter的事情,而是python的工作方式。顺便说一句:常见错误
var=Widget().grid()
,您将None
分配给var
,因为grid()
/pack()
/place()
返回None
。您必须分两步执行var=Widget()
和var.grid()
,如果不需要var
labelresult=None
并通知函数使用函数中的global labelresult
来使用此全局变量。另外,您可以在开始时创建标签,以后只更改文本-labelresult[“text”]=…