import tkinter
tkinter._test()
按钮
Button 按钮组件
RadioButton 单选框按钮
CheckButton 选择按钮组件
Listbox 列表框组件
文本输入框
Entry 单行文本框组件
Spinbox 输入控件,可以指定输入范围值
Text 多行文本框组件
Message 用来显示多行文本
标签组件
Label 菜单组件
MenuButton 菜单按钮组件,可以使用Menu代替
Menu 菜单控件,用于显示菜单栏,下拉菜单,弹出菜单
滚动条
Scale 滑块组件
Scrollbar 滚动条组件
其他组件
Canvas 画布组件
Frame 框架组件,将多个组件编组
Toplevel 创建子窗口容器组件
PanedWindow 窗口布局管理的插件,可以包含一个或者多个子控件
LabelFrame 简单的容器控件
tkMessageBox 显示应用程序的消息框
属性 | 描述 |
---|---|
Dimension | 控件大小 |
Color | 控件颜色 |
Font | 控件字体 |
Anchor | 锚点 |
Relief | 控件样式 |
Bitmap | 位图 |
Cursor | 光标 |
pack()
place()
grid()
# pack布局案例
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()
# grid布局案例
import tkinter
baseFrame = tkinter.Tk()
#下面被注释掉的一行代码跟下面两行代码等效
#lb1 = tkinter.Label(baseFrame, text="账号: ").grid(row=0, sticky= tkinter.W)
lb1 = tkinter.Label(baseFrame, text="账号: ")
lb1.grid(row=0, sticky= tkinter.W)
en = tkinter.Entry(baseFrame)
en.grid(row=0, column=1, sticky=tkinter.E)
lb2 = tkinter.Label(baseFrame, text="密码: ").grid(row=1, sticky= tkinter.W)
tkinter.Entry(baseFrame).grid(row=1, column=1, sticky=tkinter.E)
btn = tkinter.Button(baseFrame, text="登录").grid(row=2, column=1, sticky=tkinter.W)
baseFrame.mainloop()
# label例子
import tkinter
base = tkinter.Tk()
# 负责标题
base.wm_title("label Test")
lb1 = tkinter.Label(base, text="Python Label")
# 布局
lb1.pack()
lb2 = tkinter.Label(base, text="绿色背景", background="green")
lb2.pack()
lb3 = tkinter.Label(base, text="蓝色背景", background="blue")
lb3.pack()
# 消息循环
base.mainloop()
# Button例子
import tkinter
def showLabel():
global baseFrame
# 在函数中定义一个Label
# label的父组件是baseFrame
lb = tkinter.Label(baseFrame, text="显示Label")
lb.pack()
baseFrame = tkinter.Tk()
btn = tkinter.Button(baseFrame, text="Show Label", command=showLabel)
btn.pack()
baseFrame.mainloop()
Button的属性:
anchor 设置按钮中文字的对其方式,相对于按钮的中心位置
background(bg) 设置按钮的背景颜色
foreground(fg) 设置按钮的前景色(文字的颜色)
borderwidth(bd) 设置按钮边框宽度
cursor 设置鼠标在按钮上的样式
command 设定按钮点击时触发的函数
bitmap 设置按钮上显示的位图
font 设置按钮上文本的字体
width 设置按钮的宽度 (字符个数)
height 设置按钮的高度 (字符个数)
state 设置按钮的状态
text 设置按钮上的文字
image 设置按钮上的图片