python - 使用与所有其他命令相同的命令向选项菜单添加选项
问题描述
嗨,我试图根据用户想要的选项数量向选项菜单添加选项,我没有包括用户输入部分,因为它在解决问题时不是必需的。我希望选项菜单中的所有选项都能调用课程optionshow
,但由于某种原因我无法让它工作,请帮忙。这是代码,感谢您提前提供任何帮助。
import tkinter as tk
root = tk.Tk()
root.geometry('1000x600')
class optionshow:
def __init__(self,p):
self.p = p.get()
print(self.p)
option = tk.StringVar()
option.set('Select')
optionmenu = tk.OptionMenu(root, option, 'Select', command=lambda: optionshow(option))
optionmenu.place(x=350, y=20)
choices = ('12345')
for choice in choices:
optionmenu['menu'].add_command(label=choice, command=tk._setit(option, choice))
root.mainloop()
解决方案
您仅为“条目”选项(而不是正确)实例化该类。为什么不采取不同的方法并在创建菜单时一次添加所有选项:
import tkinter as tk
root = tk.Tk()
root.geometry('1000x600')
class optionshow():
def __init__(self,p):
self.p = p.get()
print(self.p)
option = tk.StringVar(root)
option.set('Select')
choices = ('12345')
optionmenu = tk.OptionMenu(root, option, 'Select', *choices, command=lambda x: optionshow(option))
optionmenu.place(x=350, y=20)
root.mainloop()
请注意部分中的必要更正command=lambda
。
推荐阅读
- java - Intellij:将项目导入为另一个项目的库
- c++ - 在一帧中绘制一个具有不同数据的 VBO 的性能
- python - 如何并行运行带参数的函数?
- jquery - 如何使用 Echarts 创建动态 Y 轴间隔
- php - WSDL:如何同时描述具有属性和字符串值的元素?
- apache-kafka - 为什么有人会选择 apache Kafka 而不是 Confluent?
- azure-devops-self-hosted-agent - 如何在自托管 Windows 代理中的 Azure Pipelines 中构建 Visual Studio 安装程序项目
- tsql - CONCAT 函数附加列值以将数据导出到 CSV 文件
- javascript - 角度过滤器数组,只有 1 个值为 true 的对象
- sql - Kotlin Exposed 中存在 SQL 的等价物