我正在学习使用Tkinter使用python创建简单的GUI . 我目前正在使用python文档作为参考(link) .
我要做的第一件事是理解那里的示例代码 . 我特别关注这段代码,它创建了一个带有两个按钮的对话框,一个用于在控制台上打印,另一个用于关闭程序:
from Tkinter import *
class Application(Frame):
def say_hi(self):
print "hi there, everyone!"
def createWidgets(self):
self.QUIT = Button(self)
self.QUIT["text"] = "QUIT"
self.QUIT["fg"] = "red"
self.QUIT["command"] = self.quit
self.QUIT.pack({"side": "left"})
self.hi_there = Button(self)
self.hi_there["text"] = "Hello",
self.hi_there["command"] = self.say_hi
self.hi_there.pack({"side": "left"})
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()
我知道函数createWidgets将所有元素放在屏幕上(以某种方式使用def init 语句创建),但我不明白为什么使用 init 名称创建主屏幕 . 我认为这是一个惯例,但是当我改变' init ' for ' main ' the buttons were not placed in the screen, so I don' t知道是否必须始终使用该名称创建主屏幕时,或者我在那里做错了什么 .
我也不明白为什么每个函数都是使用(self)创建的(这意味着什么?)或者为什么 . 在最后调用.mainloop(我想开始整个程序)当我没有看到任何类型的main时循环在示例代码中的任何位置定义 .
我对对象如何工作有一个基本的了解,但我发现python在处理这些事情时有点混乱 . 我已经查看了关于这个的python文档,但它对我来说似乎有点模糊 .
任何类型的链接到更具体的文档(比我正在使用的python更模糊的东西)将不胜感激 .