【发布时间】:2021-07-15 15:40:07
【问题描述】:
python 新手,所以这可能是一个愚蠢的问题...
我想说if text1.get() == "1" then x = 0 和if text2.get() = "2" then y = 8。然后我想要一个添加x 和y 的button。
from tkinter import *
new = Tk()
new.title("Lockdown?")
new.geometry("700x400")
text3=Entry(new, width = "60")
text3.place(rely=0.15)
if text3.get() == "":
label9 = Label(new, text="required field", fg="red")
label9.place(rely=0.17)
elif text3.get() == "1":
x = "0"
elif text3.get() == "2":
x = "1"
elif text3.get() == "10":
x = "9"
else:
label10 = Label(new, text = "Please use a number ranging from 1-10")
text4=Entry(new, width = "60")
text4.place(rely=0.26)
if text4.get() == "":
label11 = Label(new, text="Required Field", fg = "red")
label11.place(rely=0.19)
elif text4.get() == "7":
y = "3"
elif text4.get() == "8":
y = "2"
elif text4.get() == "9":
y = "1"
elif text4.get() == "10":
y = "0"
else:
label11 = Label(new, text = "Please use a number ranging from 1-10")
def cmd3():
label15 = Label(new, text = x + y)
label15.place(rely=0.8)
btn3 = Button(new, text = "Submit Answers", command = cmd3, font=("Arial Bold", 25), bg = "white", fg = "black")
btn3.place(rely=0.71)
new.mainloop()
【问题讨论】:
-
所有对某事做出反应的代码都应该放在按下按钮时调用的函数中 - 当没有任何内容输入任何文本条目时,所有当前代码都将被执行 - 你可能会想再做一些 TK 教程 ....
-
至于 NameError:您使用的变量在您使用它的时候是未知的。谷歌错误,很多例子。 edit您的问题,如果您无法自行解决,请添加错误的堆栈跟踪 - 堆栈跟踪应该清楚地告诉您错误发生的位置。
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是截图,不是链接到外部门户)有问题(不是评论)。还有其他有用的信息。
-
GUI 框架(其他语言的 tkinter、PyQt、wxPython 等)不像
input()那样工作。Entry不会等待您的数据 - 它只会通知mainloop它必须在窗口中显示的内容。而mainloop开始一切 - 它显示窗口等。如果你想从Entry获取价值,那么你应该在分配给Button的函数中进行。
标签: python if-statement user-interface tkinter nameerror