tkinter的定义
tkinter是python自带的gui(用户交互界面)库,对图形图像处理库tk的封装。
组件:组成界面的构成内容就是组件。 按钮,文本输入框,滚动条,菜单,列表。。。
窗口:一个软件的矩形区域
界面开发的最小内容
1 2 3 4 5 6 7 8 9 10
| import tkinter
root = tkinter.Tk() root.minsize(500,500)
root.mainloop()
|
组件的摆放方式
- pack()方式 ->方向/方位摆放方法
1 2 3 4 5 6
| side 设置组件相对于父组件的摆放位置 ipadx,ipady 设置组件的内部间距 padx,pady 设置多个组件之间的外部间距 expand 设置side是否失效
注意:仅仅使用pack无法实现表格方式,必须借助后面的Frame组件才可以实现,非常复杂。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
btn1 = tkinter.Button(root,text = '按钮1') btn1.pack(ipadx = 20)
btn2 = tkinter.Button(root,text = '按钮2') btn2.pack(ipady = 20)
btn3 = tkinter.Button(root,text = '按钮3') btn3.pack(padx = 50)
btn4 = tkinter.Button(root,text = '按钮4') btn4.pack(pady = 50)
btn = tkinter.Button(root,text = '屠龙宝刀,点击就送')
btn.pack(fill = 'x') btn.pack(fill = 'y',side = 'left') btn.pack(expand = 'yes',fill = 'both')
|
- grid()方式 ->网格摆放方法
1 2 3 4 5 6
| row 设置行数 默认为0 column 设置列数 默认为0 rowspan 设置跨行数量 cloumnspan 设置跨列的数量 ipadx,ipady 设置组件内部间距 padx,pady 设置多个组件之间的外部间距
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| btn1 = tkinter.Button(root,text = '按钮1') btn1.grid(row = 0,column = 0)
btn2 = tkinter.Button(root,text = '按钮2') btn2.grid(row = 1,column = 0)
btn3 = tkinter.Button(root,text = '按钮3') btn3.grid(row = 0,column = 1)
btn4 = tkinter.Button(root,text = '按钮4') btn4.grid(row = 1,column = 1)
btn0 = tkinter.Button(root,text = '按钮0') btn0.grid(row = 2,column = 0,columnspan = 2,ipadx = 20)
btnd = tkinter.Button(root,text = '按钮=') btnd.grid(row = 0,column = 2,rowspan = 2,ipady = 16)
|
1 2 3 4 5 6 7 8 9 10 11 12
| 绝对定位布局: x 设置距离左上角的水平长度 单位 都是像素 y 设置距离左上角的垂直高度 单位 都是像素 width 设置组件所占据的宽度 单位 都是像素 height 设置组件所占据的宽度 单位 都是像素
相对定位布局: relx 设置距离左上角的水平长度(取值0~1) rely 设置距离左上角的垂直高度(取值0~1) relwidth 设置组件所占据的宽度(取值0~1) relheight 设置组件所占据的宽度(取值0~1) 以上属性设置都是相对于界面宽度或者高度的百分比,可以根据界面的带下改变而改变~!
|
1 2 3 4 5 6 7 8 9
| btn1 = tkinter.Button(root,text = '按钮1') btn1.place(x = 100 ,y = 20,width= 50,height = 50)
btn2 = tkinter.Button(root,text = '按钮2') btn2.place(x = 200 ,y = 50,width = 300,height = 30)
btn1 = tkinter.Button(root,text = '按钮1') btn1.place(relx = 0.2,rely = 0.1,relwidth = 0.1,relheight = 0.1)
|
组件的基本属性
1 2 3
| root.minsize(500,500)
root.geometry('300x400')
|
1 2 3 4 5 6 7
| btn3 = tkinter.Button(root,text='颜色',bg='gold') btn3.pack()
btn4 = tkinter.Button(root,text='颜色',bg='#ff0000') btn4.pack()
|
1 2
| btn5 = tkinter.Button(root,text='字体',font = ('黑体',40,'bold','italic')) btn5.pack()
|
1 2
| btn6 = tkinter.Button(root,text='锚点',anchor='sw') btn6.pack(ipadx = 20, ipady = 20)
|
1 2
| btn7 = tkinter.Button(root,text='3',relief= tkinter.FLAT) btn7.pack()
|
1 2
| btn8 = tkinter.Button(root,text='位图',bitmap = 'question') btn8.pack()
|
1 2
| btn9 = tkinter.Button(root,text='鼠标',cursor='heart') btn9.pack(ipadx=30,ipady=20)
|
图片设置
1 2 3
| long = tkinter.PhotoImage(file = 'long.gif') btn10 = tkinter.Button(root,text='图片',image=long) btn10.pack()
|
1 2 3 4
| width 设置按钮的宽度 1/2 汉字或者数字大小 不推荐使用 height 字符的大小 不推荐使用 btn1= tkinter.Button(root,text='按钮',bg='red',fg='yellow',font=('楷体',20,'italic'),height = 4,width = 10) btn1.pack()
|
1 2 3
| justify btn2 = tkinter.Button(root,text='孙悟空\n大闹天空',justify='right') btn2.pack()
|
1 2 3 4
| state 将此选项设置tkinter.DISABLED为灰色按钮并使其无响应。tkinter.ACTIVE鼠标悬停时有值。默认是tkinter.NORMAL。 bd 边框粗细 btn3 = tkinter.Button(root,text='按钮',state='normal',bd=50) btn3.pack()
|
Canvas组件
1 2 3 4 5
| canvas = tkinter.Canvas(root,bg='white') canvas.pack()
#画布中回值长方形 canvas.create_rectangle(20,20,100,100,fill='red',outline='yellow')
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| #设置显示内容tkinter变量 text = tkinter.StringVar() #设置内容 text.set('同意嫁给你') #设置复选框勾选与否的值 result = tkinter.IntVar()
#设置操作checkbutton的方法 def func(): print(result.get())
checkbutton = tkinter.Checkbutton(root,textvariable=text,variable=result,command=func,onvalue=66,offvalue=77) checkbutton.pack()
|
entry组件
1 2 3 4 5 6 7 8
| #创建组件 #用户名 username = tkinter.Entry(root,width=50,bg='yellow',fg='red') username.pack()
#密码 password = tkinter.Entry(root,show='*') password.pack()
|