目标:
1.编写一个gui,生成按钮
2.通过偏函数,生成按钮
3.通过装饰器,实现按钮输出信息功能
1.使用Tkinter,创建一个按钮
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python# -*- coding: utf-8 -*-import Tkinter#定义一个窗口root = Tkinter.Tk()#定义一个按钮b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1')#包装b1.pack()root.mainloop()
•运行代码,效果如下图
2.通过使用偏函数定义按钮(偏函数定义一些相通部分的内容)
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python# -*- coding: utf-8 -*-import Tkinterfrom functools import partialroot = Tkinter.Tk()#使用偏函数定义相同的内容MyButton = partial(Tkinter.Button, root, foreground='white', background='blue')b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1')b2 = MyButton(text='Button2')b3 = MyButton(text='Button3')b4 = MyButton(text='quit')b1.pack()b2.pack()b3.pack()b4.pack()root.mainloop()
•运行代码,测试效果
3.定义函数,实现点击button2按钮,输出"Hello,world"功能,点击quit按钮,关闭窗口功能。
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python# -*- coding: utf-8 -*-import Tkinterfrom functools import partialdef greet(): print "Hello, world"root = Tkinter.Tk()MyButton = partial(Tkinter.Button, root, foreground='white', background='blue')b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1')b2 = MyButton(text='Button2', command=greet)b3 = MyButton(text='Button3')b4 = MyButton(text='quit', command=root.quit)b1.pack()b2.pack()b3.pack()b4.pack()root.mainloop()
•运行代码,点击Button2和quit按钮查看效果
4.通过编写装饰器实现,点击不同按钮,打印不同的信息。
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python# -*- coding: utf-8 -*-import Tkinterfrom functools import partialdef greet(word): def welcome(): print "Hello, %s" % word return welcomeroot = Tkinter.Tk()MyButton = partial(Tkinter.Button, root, foreground='white', background='blue')b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1')b2 = MyButton(text='Button2', command=greet('world'))b3 = MyButton(text='Button3', command=greet('Python'))b4 = MyButton(text='quit', command=root.quit)b1.pack()b2.pack()b3.pack()b4.pack()root.mainloop()
•运行代码,测试效果,点击Button2,后台输出"Hello, world", 点击Button3后台输出"Hello, Python"