TKinter语法创建小部件



这在技术上写得好吗?它会引起什么问题吗。我找不到任何关于这种为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调用了所有属性。它只需要更多的行。

从技术上讲,你写的是很好的

相关内容

  • 没有找到相关文章

最新更新