python - 如何在没有 TypeError 的情况下在我的 python tkinter 代码上访问这些费率:'dict_keys' object is not subscriptable
问题描述
导入 tkinter 作为 tk 导入请求
类 MyApp: def init (self): self.master=tk.Tk() self.master.geometry('600x400+200+150') self.master.config(bg='#008080') self.frame=tk .Frame(self.master, bg='#008080') self.frame.pack()
RATES = {
"Australian Dollar":1.4099,
"Brazilian Real":3.7927,
"Canadian dollar":1.3375,
"Switzerland Franc":0.9964,
"China Yuan":6.7131,
"Euro":0.8845,
"United Kingdom Pound":0.763,
"Hungarian Forint":279.337,
"Indian Rupees":68.98,
"Japanese Yen":110.5194,
"Kenyan shilling":100.6989,
"Korean Won":1133.5973,
"Malawian Kwacha":723.985,
"New Zealand dollar":1.4558,
"Oman Riyal":0.385,
"Tanzanian Shilling":2344.103,
"Ugandan Shilling":3708.5025,
"United States Dollar":1,
"South African Rand":14.3397,
"Zambian Kwacha":12.029
}
variable=tk.StringVar(self.frame)
variable.set(None)
self.opt=tk.OptionMenu(self.frame, variable, *RATES, relief='raised', bd=2, width=8, bg='#008085')
self.opt.grid(row=2, column=2, padx=10, pady=10)
self.master.mainloop()
cApp=MyApp()
解决方案
stovfl 提供的解决方案是正确的,但是将 OptionMenu 的其余配置留在函数中会产生错误,因为具有项目列表的 OptionMenu 的初始化程序不同。因此,您必须使用单独的功能进行配置:
self.opt=tk.OptionMenu(self.frame, variable, *list(RATES.keys()))
self.opt.config(relief='raised', bd=2, width=8, bg='#008085')
self.opt.grid(row=2, column=2, padx=10, pady=10)
推荐阅读
- linux - 如何在 linux 发行版上找到 glibc.so 以动态加载它
- c# - 如何检查文件是否存在于wwwroot中?
- html - 使用 word web 插件将 ooxml 拖放到 word 中
- ios - 在扩展内移动 func 时出现错误“'UIViewController' 类型的值没有成员...”
- mysql - Mysql - 如何在一个查询中从表和连接表中删除数据
- javascript - Vue.js 组件中的记录列表为空
- linux - ssh 端口转发(“ssh -fNL”)无法通过期望 spawn 自动提供密码
- integromat - 如何在自定义 Integromat 应用程序中调试 IML 功能?
- spring-boot - 用于在 Spring Boot JPA 中执行本机 SQL IN 子句查询的 SQLSyntaxErrorException
- centos - OpenLDAP 策略翻译