为什么可以';我不能在tkinter(Python)中更改标签文本吗?
我试图在myintro启动时为现有标签设置文本 我得到了这个错误: infoLabel.config(text='这是简介!')文件 “C:\Python39\lib\tkinter\u init\uuz.py”,配置中的第1646行 返回self.configure('configure',cnf,kw)文件“C:\Python39\lib\tkinter_init.py”,第1636行,在_configure中 self.tk.call(_flatten((self._w,cmd))+self._选项(cnf)) _tkinter.TclError:无效的命令名“!label”为什么可以';我不能在tkinter(Python)中更改标签文本吗?,python,tkinter,label,Python,Tkinter,Label,我试图在myintro启动时为现有标签设置文本 我得到了这个错误: infoLabel.config(text='这是简介!')文件 “C:\Python39\lib\tkinter\u init\uuz.py”,配置中的第1646行 返回self.configure('configure',cnf,kw)文件“C:\Python39\lib\tkinter_init.py”,第1636行,在_configure中 self.tk.call(_flatten((self._w,cmd))+sel
使用tkinter的mainloop时的问题是,它将充当“while”循环,直到GUI关闭。如果将这两条线反转:
myintro()
root.mainloop()
窗口标签将显示“这是简介”
这就是为什么我建议在使用tkinter时使用“更新”功能的原因:
从tkinter导入*
#窗口属性
root=Tk()
根标题(“CIT 144最终版,XXXX XXXX”)
root.geometry('400x275')
运行=真
#================功能==================
def myintro():
infoLabel.config(text='这是简介!')
root.update()
root.update_idletasks()
def main():
返回
def按钮单击()
返回
#================窗口小部件定义=================
infoLabel=Label(根,文本='x')
inputBox=条目(根,宽度=18)
buttonOne=Button(根,文本='>>',宽度=5,命令=myintro)
infoLabel.grid(列=0,行=0)
网格(列=0,行=2)
buttonOne.grid(列=0,行=3)
运行时:
尝试:
root.update()
root.update_idletasks()
除:
打破
为什么在root.mainloop()之后调用myintro()
root.mainloop()
在tkinter窗口被销毁时结束,因此标签不再存在python def myintro():my_variable=infoLabel.config(text='这是简介!')my_variable\u text=my_variable.get()
现在您可以在mainloop之后调用变量。@kirgismustafa17现在您正在尝试调用.get()
。请注意,infoLabel.config(…)
不会返回任何有用的内容。
from tkinter import *
#Window properties
root = Tk()
root.title('CIT 144 Final, XXXX XXXX')
root.geometry('400x275')
#===============Functions==================
def myintro():
infoLabel.config(text = 'This is the intro!')
def main():
return
def buttonOneClick():
return
#==============Window widgets definitions=================
infoLabel = Label(root, text = 'x')
inputBox = Entry(root, width = 18)
buttonOne = Button(root, text = '>>', width=5, command=buttonOneClick)
infoLabel.grid(column=0,row=0)
inputBox.grid(column=0,row=2)
buttonOne.grid(column=0,row=3)
root.mainloop()
myintro()