GUI(graphics users interface)图形用户界面,
Tkinter模块已经在python中内置,所以在使用前直接导入即可,两种导入方式:
import tkinter as tk—-导入tkinter,但没有引入任何组件,在使用时需要使用tk前缀,如需要引入按钮,则表示为:tk.Button
from tkinter import *—-将tkinter中的所有组件一次性导入。
-导入tkinter模块
-创建一个顶层窗口
-在顶层窗口的基础上构建所需的GUI模块和功能
-将每个木哦快与底层代码关联起来
-执行主循环
Button 按钮控件;在程序中显示按钮。
Canvas 画布控件;显示图形元素如线条或文本
Checkbutton 多选框控件;用于在程序中提供多项选择框
Entry 输入控件;用于显示简单的文本内容
Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label 标签控件;可以显示文本和位图
Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
Menubutton 菜单按钮控件,由于显示菜单项。
Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单
Message 消息控件;用来显示多行文本,与label比较类似
Radiobutton 单选按钮控件;显示一个单选的按钮状态
Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。
Text 文本控件;用于显示多行文本
Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似
Spinbox 输入控件;与Entry类似,但是可以指定输入范围值
PanedWindow PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。
tkMessageBox 用于显示你应用程序的消息框。
Dimension 控件大小;
Color 控件颜色;
Font 控件字体;
Anchor 锚点;
Relief 控件样式;
Bitmap 位图;
Cursor 光标;
Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置
几何方法 描述
pack() 包装;
grid() 网格;
place() 位置;
Tk使用了一种包管理所有的组件当定义完组件之后,需要调用pack()方法来控制组件的显示方式,若不调用pack()方法,组件将不会显示
在交互环境下,编写Tkinter测试代码时,运行过Tk()之后即进入主循环,可以看到顶层窗口,而若运行py文件,一定要调用mainloop()方法进入主循环,方可拷打顶层窗口
顶层窗口也称为根窗口,包括一个标题栏和窗口管理器和窗口装饰部分,一个Tkinter开发的应用程序中,值需要创建一个顶层窗口,并且此窗口必须建立其他窗口建立之前
from Tkinter import
tk=TK()
…
tk.mainloop()
from Tkinter import
top=Tk()
top.title(‘top’)
top.mainloop()
结果:
标签组件可以用来显示文本和图片,通过在文本中添加换行符来控制换行,也可以通过组件的大小实现自动换行
示例:
from Tkinter import *
top=Tk()
top.title(‘top’)
label=Label(top,text=’hello world!’)
label.pack() #调用pack方法
top.mainloop()
结果:
height 组件高度
width 组件宽度
fg 前景字体颜色
bg 背景颜色
justify 多行文本的对齐方式,可选参数有:LEFT、CENTER、RIGHT
padx 文本左右两侧的空格数
pady 文本上下两侧的空格数
添加参数后的程序运行示例
示例:
from Tkinter import *
top=Tk()
top.title(‘top’)
label=Label(top,text=’hello world!’,height=10,width=30,fg=’white’,bg=’green’)
label.pack()
top.mainloop()
结果:
框架相对于其他组件而言,它只是个容器,因为它没有方法,但它可以捕获键盘和鼠标的事件来进行回调
框架一般用作包含一组空间的主体,切可以制定外观
示例:
示例:
from Tkinter import *
root=Tk()
root.title('top')
for relief in [RAISED ,SUNKEN,FLAT,RIDGE,SOLID, ]:
f=Frame(root,borderwidth=2,relief=relief)
Label(f,text=relief,width=10).pack(side=LEFT)
f.pack(side=LEFT,padx=5,pady=5)
root.mainloop()
按钮可以禁用,如果将按钮放在 TAB群里,就可以使用TAB键来进行跳转和定位
示例:
from Tkinter import *
root=Tk()
root.title('top')
Button(root,text='jinyong',state=DISABLED).pack(side=LEFT)
Button(root,text='quxiao').pack(side=LEFT)
Button(root,text='queding').pack(side=LEFT)
Button(root,text='tuichu',command=root.quit).pack(side=RIGHT)
root.mainloop()
height 组件高度
width 组件宽度
fg 前景字体颜色
bg 背景颜色
activebackground 按钮按下时的背景颜色
avtiveforeground 按钮按下时前景颜色
justify 多行文本的对齐方式,可选参数:LEFT、CENTER、RIFGT
padx 文本左右两侧的空格数(默认为1)
pady 文本上下两侧的空格数(默认为1)
state 设置组件状态,默认为NORMAL,可设置为:DISABLED–禁用组件
示例:
from Tkinter import *
root=Tk()
root.title('top')
Button(root,text='jinyong',state=DISABLED,height=2,width=10).pack(side=LEFT)
Button(root,text='quxiao',height=2,width=10,fg='green').pack(side=LEFT)
Button(root,text='queding',height=2,width=10,fg='yellow').pack(side=LEFT)
Button(root,text='tuichu',height=2,width=10,fg='red',activebackground='blue',activeforeground='white',command=root.quit).pack(side=RIGHT)
root.mainloop()
可以为输入框设置默认值,也可以禁止用户输入,当用户输入的内容一行显示不下的时候,输入框自动生成滚动条
示例:
from Tkinter import *
root=Tk()
root.title('top')
f1=Frame(root)
Label(f1,text='biaozhushurukuang:',foreground='red').pack(side=LEFT,padx=5,pady=10)
e1=StringVar()
Entry(f1,width=60,textvariable=e1).pack(side=LEFT)
e1.set('morenneirong')
f1.pack()
f2=Frame(root)
Label(f2,text='jinyongshurukuang:',foreground='blue').pack(side=LEFT,padx=5,pady=10)
e2=StringVar()
Entry(f2,width=60,textvariable=e2,state=DISABLED).pack(side=LEFT)
e2.set('bukegenggaineirong')
f2.pack()
root.mainloop()
height 组件的高度
width 组件的宽度
fg 前景字体颜色
bg 背景颜色
show 将Entry框中的文本替换为制定字符,用于输入密码等,如设置show=“*”
state 设置组件状态,默认为NORMAL,可设置为:DISABLED–禁用组件,READONLY–只读