【发布时间】:2015-09-07 23:05:35
【问题描述】:
我一直在尝试使用 tkinter 中的 OptionMenu 小部件,并注意到每当我尝试指定不同的属性时,例如 highlightbackground 选项,它似乎认为我在告诉它一个要在下拉列表中显示的值。我有这个:
self.color_menu = OptionMenu(self.main, self.colorForMenuText, *self.colors,highlightbackground = self.color)#
self.color_menu.place(relx = 0.5, rely = 0.4, anchor = "center")
我希望它能够执行上述功能。然而,它反而崩溃并吐出这一切:
Exception in Tkinter callback
Traceback (most recent call last):
File "/Users/odimartino/.pyenv/versions/3.4.2/lib/python3.4/tkinter/__init__.py", line 1533, in __call__
return self.func(*args)
File "PhotoWall.py", line 29, in setting
self.color_menu = OptionMenu(self.main, self.colorForMenuText, *self.colors, highlightbackground = self.color)#
File "/Users/odimartino/.pyenv/versions/3.4.2/lib/python3.4/tkinter/__init__.py", line 3331, in __init__
raise TclError('unknown option -'+kwargs.keys()[0])
TypeError: 'dict_keys' object does not support indexing
以防我在上面表达得不够清楚(清晰不是我的强项),我的问题是:当它认为我在告诉它其他内容时,我如何告诉这个小部件该怎么做?
【问题讨论】:
-
选项菜单不会像您想象的那样采用选项。您是否正在阅读一些文档,说明它具有这些选项?
-
@BryanOakley 好吧,我认为它是一个小部件。而且,除非我将被告知其他情况(经常发生在我身上),否则 tkinter 小部件会采用这些选项。就像我使用 highlightbackground 的按钮一样。
-
当您的假设似乎不适合您时,第一步应该始终是阅读文档。
-
@BryanOakley 感谢您的回复,尽管我可能有点无知。这就是学习过程!也许有一天我会成为世界级的开发者。在那之前...好吧,我可以梦想成真...无论如何,我正在阅读的 effbot 文章并没有说它是一个不寻常的小部件...所以我认为它与我见过的所有小部件完全一样迄今。感谢您的帮助!
标签: python-3.x tkinter attributes