python - 标签未定义
问题描述
这里有什么问题请帮忙。它正在写lbl1 is not defined。我已经定义它是顺序错误我该如何修复它?我每天都有这样的问题,你能帮我吗???
import tkinter
window = tkinter.Tk()
window.title("Calculator 2")
window.geometry("400x400")
def func1():
lbl1 = tkinter.Label(window, text="1")
lbl1.pack()
def func2():
lbl2 = tkinter.Label(window, text="+")
lbl2.pack()
def func3():
lbl3 = tkinter.Label(window, text="2")
lbl3.pack()
btn1 = tkinter.Button(window, text="1", command=func1)
btn2 = tkinter.Button(window, text="+", command=func2)
btn3 = tkinter.Button(window, text="2", command=func3)
btn1.pack()
btn2.pack()
btn3.pack()
def funclst():
if lbl1 == "1" and lbl2 == "+" and lbl3 == "2":
rstt = tkinter.Label(window, text=(int(lbl1) + int(lbl3)))
rstt.pack()
lst = tkinter.Button(window, text="Calculate", command=funclst)
lst.pack()
window.mainloop()
解决方案
您在函数内部创建标签。当函数结束时,分配给标签的名称被垃圾收集。稍后当您尝试访问if
语句中的变量时,它们未在全局范围内定义。
还; 这些if
语句会检查lbl1 == "1"
which 是否像lbl1
对标签的引用而不是对标签内的文本一样不起作用。文本可以通过lbl1['text']
或访问lbl1.cget("text")
推荐阅读
- java - 如何使用 Object 参数创建片段?
- python - Python Pygame 蛇游戏项目混乱
- c# - C# Mono.Cecil 注入的 IL 代码未执行
- ansible - ansible 在 src 和 dest 之间的同一主机上同步
- javascript - 如何从生成的模式中获取简单的 graphql 变异查询?
- python - Python OpenCV videocapture 不从源捕获视频
- dataframe - Julia 日期作为列名
- javascript - Sapper firebase 托管损坏的 CSS 和其他资产链接
- linux - 基于 bash 脚本中的浮点矩阵的循环 (Linux/Ubuntu)
- python - 将字符串变量分解为多列