【发布时间】:2018-04-13 12:16:36
【问题描述】:
我正在编写一些代码,当 optionMenu 更改时我需要一个变量来更改这里是我下面的一些代码
#!/user
# -*- coding: utf-8 -*-
import locale
import Tkinter as Tk
root = Tk.Tk()
root.title("My Tax Calculator")
root.geometry("700x225")
def getStudentLoan():
global StudentLoan
StudentLoan = StudentLoanLi.get()
LeftFrame = Tk.Frame(root, width=300, height=200, pady=3)
Placeholder2 = Tk.Label(LeftFrame, text="")
Placeholder2.grid(row=2, column=1)
StudentLoanOp = Tk.StringVar()
StudentLoanOp.set("No")
StudentLoanLi = Tk.OptionMenu(Placeholder2, StudentLoanOp, "No", "Plan 1", "Plan 2", command=lambda _: getStudentLoan())
StudentLoanLi.grid(row=2, column=1)
Tk.mainloop()
这在 pycharm 编辑器中不起作用我收到此错误“类 'OptionMenu' 的 'get' 上未解决的属性引用错误”
当我执行代码并尝试更改 OptionMenu 时,我在控制台中收到此错误
"StudentLoan = StudentLoanLi.get() AttributeError: OptionMenu 实例没有属性 'get'"
任何帮助将不胜感激
【问题讨论】:
-
您发布的代码会创建一个空窗口。你能解决这个问题,这样我们才能真正看到 OptionMenu 吗?
-
您应该在实际保存所选项目的 StringVar 上调用
.get(),而不是 OptionMenu 本身。 -
要查看选项菜单,只需将第一个参数更改为 root
StudentLoanLi = Tk.OptionMenu(root, StudentLoanOp, ...) -
这是什么 lambda _(下划线):在 StudentLoanLi = Tk.OptionMenu(Placeholder2, StudentLoanOp, "No", "Plan 1", "Plan 2", command=lambda _: getStudentLoan() )
标签: python tkinter optionmenu tkinter.optionmenu