标签:
#hello_again.py from tkinter import * class App: def __init__(self,master): frame = Frame(master) frame.pack() self.button = Button( frame, text="关闭",fg="blue",command=frame.quit )
#也可以用foreground代替fg(缩写) self.button.pack(side=LEFT) self.hi_there = Button( frame, text="Hello",command=self.say_hi ) self.hi_there.pack(side=LEFT) def say_hi(self): print("Hi,fudianheg.This is version 2 of ‘hello world‘") root = Tk() app = App(root) root.mainloop() #root.destory()写错一个单词怪不得销毁不了窗口...
root.destroy()
运行结果:
当编写大的程序项目时,最好把代码用类包起来。
点击Hello时,控制台会显示:
"Hi,fudianheg.This is version 2 of ‘hello world‘
点击关闭时,程序就终止了。
__init__会创建一个parent widget(master),由(Frame)创建,存储在一个(frame)变量中。
创建这个窗口后,用(pack)函数显示出来。
随后创建两个Button部件作为frame的子部件,并且用(pack)函数显示。
我们在部件的构造函数中用了许多选项,作为关键字参数。第一个按钮显示“关闭”,并且用blue作为前景色,第二个显示“Hello”,也同样用了(command)选项。这个特殊的command选项指定一个函数,或者(在本例中)绑定的方法。
这两个Button部件存储于实例中,它们紧密挨在一起,加上了side=LEFT选项后,则依次靠左排列,如果side选项没有加,那么默认是TOP,效果如图:
接下来,创建一个root,把root作为参数创建一个父窗口,执行mainloop循环。
还有root.destroy()是可选的,有的环境在要在程序结束后才能退出,就要加上这一条。(例如博主的环境就是这样)
后记:
事实上创建一个窗口部件不一定需要存储在具体的变量中。如果在创建之后并不需要对它进行操作,那么可以用这种写法:
Button(frame, text="Hello", command=self.hello).pack(side=LEFT)
如果需要在创建之后再操作,或者为了保险起见,也可以存起来
w = Button(frame, text="Hello", command=self.hello)
w.pack(side=LEFT)
后记:
在Tcl编程中,如果要创建一个叫做“OK”的Button,作为dialog的子窗口,则要这样写:
button.dialog.ok
在Tkinter中是这样的:
ok = Button(dialog)
Tkinter会自动为每个窗口分配名字,上式ok和dialog只是参考,并不是真正的名字,真正地名字用str()读出来,如果要确定每个窗口部件的名字,那么可以这样:
ok = Button(dialog, name="ok")
那么这个窗口的名字叫.dialog.ok(如果你忘了dialog的名字,那可能就叫.1234323.ok之类的),窗口部件一旦被创建名字就不能变。
Python Tkinter 学习笔记(二)Hello_again
标签:
原文地址:http://www.cnblogs.com/fudianheg/p/4622989.html