Button 组件
一个简单的Button按钮,代码:
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from Tkinter import * 5 root = Tk() 6 def print_hello(): 7 print 'Hello World!!!' 8 9 Button(root, text = 'text', command = print_hello ).pack() 10 11 12 root.mainloop()
运行结果:
2. Button 的 relief 属性
relief 用于显示Button的不同显示效果
relief属性包括:flat , groove, raised, ridge,solid, sunken .显示效果如图
#!/usr/bin/python # -*- coding:utf-8 -*- from Tkinter import * root = Tk() def print_hello(): print 'Hello world' Button(root, text = 'text1', command = print_hello, relief = FLAT ).pack() Button(root, text = 'text2', command = print_hello, relief = GROOVE).pack() Button(root, text = 'text3', command = print_hello, relief = RAISED ).pack() Button(root, text = 'text4', command = print_hello, relief = RIDGE ).pack() Button(root, text = 'text5', command = print_hello, relief = SOLID ).pack() Button(root, text = 'text6', command = print_hello, relief = SUNKEN ).pack() root.mainloop()
3. Button 同样可以使用Image 插入图片:
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from Tkinter import * 5 root = Tk() 6 def print_hello(): 7 print 'Hello world' 8 9 photo = PhotoImage(file = 'C:\Users\Administrator\Desktop\timg.gif') 10 Button(root, text = 'text1', command = print_hello, image = photo, relief = FLAT ).pack() 11 Button(root, text = 'text2', command = print_hello, image = photo, relief = GROOVE).pack() 12 Button(root, text = 'text3', command = print_hello, image = photo, relief = RAISED ).pack() 13 Button(root, text = 'text4', command = print_hello, image = photo, relief = RIDGE ).pack() 14 Button(root, text = 'text5', command = print_hello, image = photo, relief = SOLID ).pack() 15 Button(root, text = 'text6', command = print_hello, image = photo, relief = SUNKEN ).pack() 16 17 root.mainloop()
4. Button 使用 image 也可以配合 compound 使用
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from Tkinter import * 5 root = Tk() 6 def print_hello(): 7 print 'Hello world' 8 9 photo = PhotoImage(file = 'C:\Users\Administrator\Desktop\timg.gif') 10 Button(root, text = 'text1', command = print_hello, image = photo, compound = 'center', relief = FLAT ).pack() 11 Button(root, text = 'text2', command = print_hello, image = photo, compound = 'top', relief = GROOVE).pack() 12 Button(root, text = 'text3', command = print_hello, image = photo, compound = 'bottom', relief = RAISED ).pack() 13 Button(root, text = 'text4', command = print_hello, image = photo, compound = 'left', relief = RIDGE ).pack() 14 Button(root, text = 'text5', command = print_hello, image = photo, compound = 'right', relief = SOLID ).pack() 15 Button(root, text = 'text6', command = print_hello, image = photo, relief = SUNKEN ).pack() 16 17 root.mainloop()
5. 设置Button 的长度与高度
width 宽度
height 高度
共有三种方法 :
1.创建Button对象时,指定宽度与高度
2.使用属性width和height来指定宽度与高度
3.使用configure方法来指定宽度与高度
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from Tkinter import * 5 root =Tk() 6 b1 = Button(root, text = '方法1', width = 30, height = 3).pack() 7 8 b2 = Button(root, text = '方法2') 9 b2['width'] = 30 10 b2['height'] = 3 11 b2.pack() 12 13 b3 = Button(root,text = '方法3') 14 b3.configure(width = 30, height = 3) 15 b3.pack() 16 17 18 19 root.mainloop()
6. anchor 设置文本在控件上面的位置
使用的值为:n(north),s(south),w(west),e(east)和ne,nw,se,sw,就是地图上的标识位置了
实例代码 :
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from Tkinter import * 5 root = Tk() 6 7 for a in ['n','w','e','s','ne','nw','se','sw']: 8 Button(root,text = 'anchor', 9 anchor = a, 10 width = 30, 11 height = 3).pack() 12 13 14 15 root.mainloop()
7. 设置按钮边框 用bd属性
bd值为 0 -10的时候 各边框图示:
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from Tkinter import * 5 root = Tk() 6 def print_hello(): 7 print 'Hello world' 8 for a in range(11): 9 Button(root,text = '设置边框%s' %a , command = print_hello ,bd = a).pack() 10 11 12 root.mainloop()
效果如图:
8 设置 按钮状态 state
有 3 个值
normal/active/disabled
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from Tkinter import * 5 root = Tk() 6 def print_hello(): 7 print 'Hello world' 8 for a in ['normal', 'active', 'disabled']: 9 10 Button(root,text = '设置状态%s'%a ,command = print_hello , state = a ).pack() 11 12 13 root.mainloop()