这在技术上写得好吗?它会引起什么问题吗。我找不到任何关于这种为tkinter构建代码的方式的信息,但它是有效的。。
myButton = tkinter.Button(main_window)
myButton['text'] = "Click Me!"
myButton['state'] = "normal"
myButton['command'] = myClick
myButton['fg'] = "blue"
而不是:
myButton = tkinter.Button(main_window,text="Click Me!",state="normal", command=myClick,fg="blue")
如果有人想为什么,只是因为代码在我看来更整洁
您所写的内容会起作用,但如果您不喜欢标准语法的表示,您可以随时这样做:
myButton = tkinter.Button(main_window,
text="Click Me!",
state="normal",
command=myClick,
fg="blue")
根据文档,这是配置小部件的合法方式。
这之所以有效,是因为tkinter使用的映射协议。举个例子,你可以在这里看到它是如何工作的,使用它没有危险:
class Unpackable(object):
def __init__(self):
self.options=['hello','world']
def keys(self):
return self.options
def __getitem__(self, key):
return dict(zip(self.options,'first_word last_word'.split()))[key]
unp = Unpackable()
print(unp['hello'])
输出:
first_word
官方python文档中提到了设置选项:
选项控制小部件的颜色和边框宽度。选项可以通过三种方式设置:
在对象创建时,使用关键字参数
fred = Button(self, fg="red", bg="blue")
创建对象后,将选项名称视为字典索引
fred["fg"] = "red" fred["bg"] = "blue"
使用config((方法更新对象后面的多个属性创建
fred.config(fg="red", bg="blue")
这是正确的。我的意思是说,您刚刚定义了按钮的变量,然后添加了按钮的属性按照以下方式,所有属性只在一个语句中调用。myButton = tkinter.Button(main_window,text="Click Me!",state="normal",command=myClick,fg="blue")
但是您已经通过variable调用了所有属性。它只需要更多的行。
从技术上讲,你写的是很好的