import tkinter
tkinter._test()
import tkinter
base = tkinter.Tk()
base.mainloop()
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('标题')
lb = tkinter.Label(base, text='Python label')
lb.pack()
# 消息循环
base.mainloop()
# Label
import tkinter
base = tkinter.Tk()
base.wm_title('标题')
lb1 = tkinter.Label(base, text='lb1文字内容').pack()
lb2 = tkinter.Label(base, text='红色背景', background='red').pack()
lb3 = tkinter.Label(base, text='蓝色背景', background='blue').pack()
base.mainloop()
# Button
import tkinter
def showlb1():
global base
lb1 = tkinter.Label(base, text='用函数调用').pack()
base = tkinter.Tk()
# 生成一个按钮
# command参数指示,当按钮被按下时,执行哪个函数
btn = tkinter.Button(base, text='showlb1', command=showlb1).pack()
base.mainloop()
-
Button的属性:
anchor 设置按钮中文字的对其方式,相对于按钮的中心位置 background(bg) 设置按钮的背景颜色 foreground(fg) 设置按钮的前景色(文字的颜色) borderwidth(bd) 设置按钮边框宽度 cursor 设置鼠标在按钮上的样式 command 设定按钮点击时触发的函数 bitmap 设置按钮上显示的位图 font 设置按钮上文本的字体 width 设置按钮的宽度 (字符个数) height 设置按钮的高度 (字符个数) state 设置按钮的状态 text 设置按钮上的文字 image 设置按钮上的图片
-
鼠标样式
- “arrow”“circle”“clock”“cross”“dotbox”“exchange”“fleur”“heart”“heart”“man”“mouse”
- “pirate”“plus”“shuttle”“sizing”“spider”“spraycan”“star”“target”“tcross”“trek”“watch”
# Button
import tkinter
def showlb1():
global base
lb1 = tkinter.Label(base, text='用函数调用').pack()
base = tkinter.Tk()
# 生成一个按钮
# command参数指示,当按钮被按下时,执行哪个函数
btn = tkinter.Button(base, text='showlb1', command=showlb1, bg='black', fg='white', bd=10, cursor='circle').pack()
base.mainloop()
组件布局
-
控制组件的摆放方式
-
三种布局:
- pack: 按照方位布局
- place:按照坐标布局
- grid: 网格布局
-
pack布局
- 最简单,代码量最少,挨个摆放,默认从上到下
- 通用使用方式:组件对象.pack(设置属性)
- side 停靠方位,可选值:left,top,right,bottom
- fill 填充方式: x,y,both,none
- expand:yes/no
- anchor:n, ne, e, se, s, sw, w, nw, or center
- ipadx:x方向内边距
- ipady:y方向内边距
- padx:x方向外边界
- pady:y方向外边界
-
grid布局