Tkinter 常用组件
按钮
- Button 按钮组件
- RadioButton 单选框组件
- CheckButton 选择按钮组件
- Listbox 列表框组件
文本输入组件
- Entry 单行文本框组件
- Text 多行文本框组件
标签组件
- Label 标签组件,可以显示图片和文字
- Message 标签组件,可以根据内容将文字换行
菜单
- Menu 菜单组件
- MenuButton 菜单按钮组件,可以使用Menu代替
滚动条
- scale 滑块组件
- Scrollbar 滚动条组件
其他组件
- Canvas 画布组件
- Frame 框架组件,将多个组件编组
- Toplevel 创建子窗口容器组件
组件的大致使用步骤
-
创建总面板
-
创建面板上的各种组件
- 指定组件的父组件,即依附关系
- 利用相应的属性对组件进行设置
- 给组件安排布局
-
同步骤2相似,创建好多个组件
-
最后,启动总面板的消息循环
import Tkinter #创建总面板 base=Tkinter.Tk() #设置面板标题 base.wm_title("test") #创建面板上的各种组件,指定组件的父组件,设置组件属性 lb=Tkinter.Label(base,text="测试测试") #给组件安排布局 lb.pack() #启动总面板的消息循环 base.mainloop()
组件布局
控制组件的摆放方式
三种布局:
- pack: 按照方位布局
- place: 按照坐标布局
- grid: 网格布局
pack布局
- 最简单,代码量最少,挨个摆放,默认从上倒下,系统自动设置
- 通用使用方式为: 组件对象.pack(设置,,,,,,,)
- side: 停靠方位, 可选值为LEFT,TOP,RIGHT,BOTTON
- fill: 填充方式,X,Y,BOTH,NONE
- expande: YES/NO
- anchor: N,E,S,W,CENTER
- ipadx: x方向的内边距
- ipady: y
- padx: x方向外边界
- pady: y…
grid布局
- 通用使用方式:组件对象.grid(设置,)
- 利用row,column编号,都是从0开始
- sticky: N,E,S,W表示上下左右,用来决定组件从哪个方向开始
- 支持ipadx,padx等参数,跟pack函数含义一样
- 支持rowspan,columnspan,表示跨行,跨列数量
place布局
-
明确方位的摆放
-
相对位置布局,随意改变窗口大小会导致混乱
-
使用place函数,分为绝对布局和相对布局,绝对布局使用x,y参数
-
相对布局使用relx,rely, relheight, relwidth
import tkinter baseFrame = tkinter.Tk() # 以下所有代码都是创建一个组件,然后布局 btn1 = tkinter.Button(baseFrame, text='A') btn1.pack(side=tkinter.LEFT, expand=tkinter.YES, fill=tkinter.Y) btn2 = tkinter.Button(baseFrame, text='B') btn2.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH) btn2 = tkinter.Button(baseFrame, text='C') btn2.pack(side=tkinter.RIGHT, expand=tkinter.YES, fill=tkinter.NONE, anchor=tkinter.NE) btn2 = tkinter.Button(baseFrame, text='D') btn2.pack(side=tkinter.LEFT, expand=tkinter.NO, fill=tkinter.Y) btn2 = tkinter.Button(baseFrame, text='E') btn2.pack(side=tkinter.TOP, expand=tkinter.NO, fill=tkinter.BOTH) btn2 = tkinter.Button(baseFrame, text='F') btn2.pack(side=tkinter.BOTTOM, expand=tkinter.YES) btn2 = tkinter.Button(baseFrame, text='G') btn2.pack(anchor=tkinter.SE) baseFrame.mainloop()