参考博客:http://blog.csdn.net/jcodeer/article/details/1811298
from tkinter import *
root = Tk()
'''
1、了解Button的relief
Button(root,text="hello,button",relief=FLAT).pack()
#relief=FLAT 就像是一个Label
root.mainloop()
'''
'''
2、了解Button的relief的其他形式
Button(root,text="hello,button",relief=FLAT).pack()
Button(root,text="hello,button",relief=GROOVE).pack()
Button(root,text="hello,button",relief=RAISED).pack()
Button(root,text="hello,button",relief=RIDGE).pack()
Button(root,text="hello,button",relief=SOLID).pack()
Button(root,text="hello,button",relief=SUNKEN).pack()
root.mainloop()
'''
#3、Button显示图像(失败)
'''
BITMAP="""
#define im_width 32
#define im_height 32
static char im_bits[] = {
0xaf,0x6d,0xeb,0xd6,0x55,0xdb,0xb6,0x2f,
0xaf,0xaa,0x6a,0x6d,0x55,0x7b,0xd7,0x1b,
0xad,0xd6,0xb5,0xae,0xad,0x55,0x6f,0x05,
0xad,0xba,0xab,0xd6,0xaa,0xd5,0x5f,0x93,
0xad,0x76,0x7d,0x67,0x5a,0xd5,0xd7,0xa3,
0xad,0xbd,0xfe,0xea,0x5a,0xab,0x69,0xb3,
0xad,0x55,0xde,0xd8,0x2e,0x2b,0xb5,0x6a,
0x69,0x4b,0x3f,0xb4,0x9e,0x92,0xb5,0xed,
0xd5,0xca,0x9c,0xb4,0x5a,0xa1,0x2a,0x6d,
0xad,0x6c,0x5f,0xda,0x2c,0x91,0xbb,0xf6,
0xad,0xaa,0x96,0xaa,0x5a,0xca,0x9d,0xfe,
0x2c,0xa5,0x2a,0xd3,0x9a,0x8a,0x4f,0xfd,
0x2c,0x25,0x4a,0x6b,0x4d,0x45,0x9f,0xba,
0x1a,0xaa,0x7a,0xb5,0xaa,0x44,0x6b,0x5b,
0x1a,0x55,0xfd,0x5e,0x4e,0xa2,0x6b,0x59,
0x9a,0xa4,0xde,0x4a,0x4a,0xd2,0xf5,0xaa
};
"""
#使用tuple数据来创建图像
bmp = BitmapImage(data = BITMAP)
Button(root,bitmap = bmp).pack()
'''
'''
4、Button中图像与文本的位置(共同显示),使用compound属性
Button(root,text="button",compound="bottom",bitmap="error").pack()
Button(root,text="top",compound="top",bitmap="error").pack()
Button(root,text="right",compound="right",bitmap="error").pack()
Button(root,text="left",compound="left",bitmap="error").pack()
Button(root,text="center",compound="center",bitmap="error").pack()
'''
'''
5、控件焦点问题,实际效果是按下enter键自动执行焦点控件,bind方法
def cb1():
print("button1 clicked")
def cb2(event):
print("button2 clicked")
def cb3():
print("button3 clicked")
b1 = Button(root,text="Button1",command=cb1)
b2 = Button(root,text="Button2")
b2.bind("<Return>",cb2)
b3 = Button(root,text="Button3",command=cb3)
b1.pack()
b2.pack()
b3.pack()
b2.focus_set()
'''
'''
6、依旧是控件焦点,按下enter后,输出一系列信息,event函数的信息
def printEventInfo(event):
print('event.time = ',event.time)
print('event.type = ',event.type)
print('event.Widgetld = ',event.widget)
print('event.KeySymbol = ',event.keysym)
but = Button(root,text = "Infomation")
but.bind("<Return>",printEventInfo)
but.pack()
but.focus_set()
'''
#若将Return换成Enter,鼠标移至button处,就会printEventInfo,打印出信息
root.mainloop()
后续参考:
http://blog.csdn.net/aa1049372051/article/details/51859476
#http://blog.csdn.net/aa1049372051/article/details/51859476
'''
7、一共三种方式指定button的宽和高
一、button内设置width和height属性
二、使用属性来指定
三、使用configure方法来指定
b1 = Button(root,text="but1",width=30,height=2)
b1.pack()
b2 = Button(root,text="but2")
b2['width'] = 30
b2['height'] = 2
b2.pack()
b3 = Button(root,text="but3")
b3.configure(width=30,height=2)
b3.pack()
'''
'''
8、anchor指button的文本所在控件的位置,nsew
for a in ['n','s','e','w','ne','nw','se','sw']:
Button(root,
text = "anchor",
anchor = a,
width = 30,
height = 3).pack()
以上为简化代码√
'''
'''
9、改变前景色和背景色
bfg = Button(root,text="change boreground",fg = "red")
bfg.pack()
bbg = Button(root,text="change background",bg = "blue")
bbg.pack()
'''
'''
10、bd=bordwidth指边框宽度,缺省值为1或2个像素
for b in [0,1,2,3,4]:
Button(root,
text=str(b),
bd=b).pack()
'''
'''
11、button风格,relief同上2
'''
'''
12、button的状态,三种
def statePrint():
print("state")
for r in ['normal','active','disabled']:
Button(root,
text = r,
state = r,
width = 30,
command = statePrint).pack()
'''
'''
13、绑定button与变量,变量变化,button变化;button变化,变量变化
def changeText():
if b['text'] == 'text':
v.set('change')
print('change')
else:
v.set('text')
print('text')
v = StringVar()
b = Button(root,textvariable=v,command=changeText)
v.set('text')
b.pack()
'''