Python Tkinter GUI六大基础组件
一、按钮组件Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。语法格式如下:w = Button ( master, option=value, ... ) 其中,master表示按钮的父容器;options为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号可选项 & 描述
1activebackground:当鼠标放上去时,按钮的背景色
2activeforeground:当鼠标放上去时,按钮的前景色
3bd:按钮边框的大小,默认为 2 个像素
4bg:按钮的背景色
5command:按钮关联的函数,当按钮被点击时,执行该函数
6fg:按钮的前景色(按钮文本的颜色)
7font:文本字体
8height:按钮的高度
9highlightcolor:要高亮的颜色
10image:按钮上要显示的图片
11justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT,RIGHT, CENTER
12padx:按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离
13pady:按钮在y轴方向上的内边距(padding)
14relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
15state:设置按钮组件状态,可选的有NORMAL、ACTIVE、 DISABLED。默认 NORMAL。
16underline:下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推
17width:按钮的宽度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小)
18wraplength:限制按钮每行显示的字符的数量
19text:按钮的文本内容
20anchor:锚选项,控制文本的位置,默认为中心
方法以下为组件常用的方法:
方法描述
deselect()清除单选按钮的状态
flash()在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它开始时的状态。
invoke()可以调用此方法来获得与用户单击单选按钮以更改其状态时发生的操作相同的操作
select()设置单选按钮为选中。
实例实例中点击按钮会显示一个信息:实例
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
# !/usr/bin/python# -*- coding: UTF-8 -*-import tkinterfrom tkinter import messageboxtop = tkinter.Tk()def helloCallBack(): messagebox.showinfo("Hello Python", "Hello 嵌入式单片机之家")B = tkinter.Button(top, text="点我", command=helloCallBack)B.pack()top.mainloop()测试输出结果如下:二、画布组件Python Tkinter 画布(Canvas)组件和 html5 中的画布一样,都是用来绘图的。您可以将图形,文本,小部件或框架放置在画布上。语法格式如下:w = Canvas ( master, option=value, ... )其中,master: 按钮的父容器。options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号可选项 & 描述
1bd:边框宽度,单位像素,默认为2 像素。
2bg:背景色
3confine:如果为 true (默认), 画布不能滚动到可滑动的区域外。
4cursor:光标的形状设定,如arrow, circle,cross, plus 等
5height:高度
6highlightcolor:要高亮的颜色
7relief:边框样式,可选值为 FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
8scrollregion:一个元组 tuple (w, n, e, s) ,定义了画布可滚动的最大区域,w为左边,n为头部,e为右边,s为底部。
9width:画布在 X 坐标轴上的大小。
10xscrollincrement:用于滚动请求水平滚动的数量值。
11xscrollcommand:水平滚动条,如果画布是可滚动的,则该属性是水平滚动条的.set()方法。
12yscrollincrement:类似 xscrollincrement, 但是垂直方向。
13yscrollcommand:垂直滚动条,如果画布是可滚动的,则该属性是垂直滚动条的 .set()方法。
Canvas 组件支持以下标准选项:arc − 创建一个扇形
[*]
[*]
coord = 10, 50, 240, 210arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")image − 创建图像
[*]
[*]
filename = PhotoImage(file = "sunshine.gif")image = canvas.create_image(50, 50, anchor=NE, image=filename)line − 创建线条
[*]
line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)oval − 创建一个圆
[*]
oval = canvas.create_oval(x0, y0, x1, y1, options)polygon − 创建一个至少有三个顶点的多边形
[*]
oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)实例:画白矩形
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
# !/usr/bin/python# -*- coding: UTF-8 -*-# import tkinter# 创建一个矩形,指定画布的颜色为白色from tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')# 创建一个矩形,坐标为(10,10,110,110)cv.create_rectangle(10, 10, 110, 110)cv.pack()root.mainloop()# 为明显起见,将背景色设置为白色,用以区别 root
三、复选框组件Python Tkinter 复选框用来选取我们需要的选项,它前面有个小正方形的方块,如果选中则有一个对号,也可以再次点击以取消该对号来取消选中。语法格式如下:
w = Checkbutton( master, option=value, ... ) 其中,master表示按钮的父容器;options为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号可选项 & 描述
1activebackground:当鼠标放上去时,按钮的背景色
2activeforeground:当鼠标放上去时,按钮的前景色
3bg:按钮的背景色
4bitmap:位图
5bd:边框的大小,默认为 2 个像素
6command:关联的函数,当按钮被点击时,执行该函数
7cursor:光标的形状设定,如arrow, circle,cross, plus 等
8disabledforeground:禁用选项的前景色
9font:文本字体
10fg:选项的前景色
11height:复选框文本行数,默认为 1。
12highlightcolor:聚焦的高亮颜色
13image:是否使用图标
14justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT,RIGHT, CENTER
15offvalue:Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。
16onvalue:Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。
17padx:按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离,默认为1 像素。
18pady:按钮在y轴方向上的内边距(padding),默认为 1 像素。
19relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
20selectcolor:选中后的颜色,默认为selectcolor="red"。
21selectimage:选中后的图片
22state:状态,默认为 state=NORMAL
23text:显示的文本,使用 "\n" 来对文本进行换行。
24underline:下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推
25variable:变量,variable 的值为 1 或 0,代表着选中或不选中
26width:默认宽度是复选框的文本或图像决定的,你可以设置指定字符数。
27wraplength:是否设置包裹。
方法以下为常用的方法:
序号方法 & 描述
1deselect():清除复选框选中选项。
2flash():在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它开始时的状态。
3invoke():可以调用此方法来获得与用户单击单选按钮以更改其状态时发生的操作相同的操作
4select():设置按钮为选中。
5toggle():选中与没有选中的选项互相切换
实例实例中点击按钮会显示一个信息:
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
# !/usr/bin/python# -*- coding: UTF-8 -*-from tkinter import *import tkintertop = tkinter.Tk()CheckVar1 = IntVar()CheckVar2 = IntVar()C1 = Checkbutton(top, text="PYTHON", variable=CheckVar1, \ onvalue=1, offvalue=0, height=5, \ width=20)C2 = Checkbutton(top, text="JAVA", variable=CheckVar2, \ onvalue=1, offvalue=0, height=5, \ width=20)C1.pack()C2.pack()top.mainloop()
四、标签组件Python Tkinter 标签控件(Label)在指定的窗口中显示的文本和图像, 你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件。语法格式如下:
w = Label( master, option=value, ... ) 其中,master表示按钮的父容器;options为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号可选项 & 描述
1anchor:文本或图像在背景内容区的位置,默认为 center,可选值为(n,s,w,e,ne,nw,sw,se,center)eswn 是东南西北英文的首字母,表示:上北下南左西右东。
2bg:标签背景颜色
3bd:标签的大小,默认为 2 个像素
4bitmap:指定标签上的位图,如果指定了图片,则该选项忽略
5cursor:鼠标移动到标签时,光标的形状,可以设置为arrow, circle, cross, plus 等。
6font:设置字体。
7fg:设置前景色。
8height:标签的高度,默认值是 0。
9image:设置标签图像。
10justify:定义对齐方式,可选值有:LEFT,RIGHT,CENTER,默认为 CENTER。
11padxx:轴间距,以像素计,默认 1。
12padyy :轴间距,以像素计,默认 1。
13relief:边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
14text:设置文本,可以包含换行符(\n)。
15textvariable:标签显示 Tkinter 变量,StringVar。如果变量被修改,标签文本将自动更新。
16underline:设置下划线,默认 -1,如果设置 1,则是从第二个字符开始画下划线。
17width:设置标签宽度,默认值是 0,自动计算,单位以像素计。
18wraplength:设置标签文本为多少行显示,默认为0。
实例
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
# !/usr/bin/python# -*- coding: UTF-8 -*-# python3使用 tkinterimport tkinter as tk# python2 使用 Tkinter# import Tkinter as tkroot = tk.Tk()w = tk.Label(root, text="Hello PYTHON!")w.pack()root.mainloop()
五、文本框组件Python Tkinter 文本框用来让用户输入一行文本字符串,你如果需要输入多行文本,可以使用 Text 组件,你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件。语法格式如下:
w = Entry( master, option=value, ... ) 其中,master表示按钮的父容器;options为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号可选项 & 描述
1bg:输入框背景颜色
2bd:边框的大小,默认为 2 个像素
3cursor:光标的形状设定,如arrow, circle,cross, plus 等
4font:文本字体
5exportselection:默认情况下,你如果在输入框中选中文本,默认会复制到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。
6fg:文字颜色。值为颜色或为颜色代码,如:'red','#ff0000'
7highlightcolor:文本框高亮边框颜色,当文本框获取焦点时显示
8justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER
9relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
10selectbackground:选中文字的背景颜色
11selectborderwidth:选中文字的背景边框宽度
12selectforeground:选中文字的颜色
13show:指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值设为 show="*"
14state:默认为 state=NORMAL, 文框状态,分为只读和可写,值为:normal/disabled
15textvariable:文本框的值,是一个StringVar()对象
16width:文本框宽度
17xscrollcommand:设置水平方向滚动条,一般在用户输入的文本框内容宽度大于文本框显示的宽度时使用。
方法下表为文本框组件常用的方法:
序号方法 & 描述
1delete ( first,last=None ):删除文本框里直接位置值text.delete(10) # 删除索引值为10的值text.delete(10, 20)# 删除索引值从10到20之前的值text.delete(0, END)# 删除所有值
2get():获取文件框的值
3icursor ( index ):将光标移动到指定索引位置,只有当文框获取焦点后成立
4index ( index ):返回指定的索引值
5insert ( index, s):向文本框中插入值,index:插入位置,s:插入值
6select_adjust ( index ):选中指定索引和光标所在位置之前的值
7select_clear():清空文本框
8select_from (index ):设置光标的位置,通过索引值 index 来设置
9select_present():如果有选中,返回 true,否则返回 false。
10select_range (start, end ):选中指定索引位置的值,start(包含) 为开始位置,end(不包含) 为结束位置start必须比end小
11select_to ( index):选中指定索引与光标之间的值
12xview ( index ):该方法在文本框链接到水平滚动条上很有用。
13xview_scroll (number, what ):用于水平滚动文本框。 what 参数可以是 UNITS, 按字符宽度滚动,或者可以是 PAGES, 按文本框组件块滚动。 number 参数,正数为由左到右滚动,负数为由右到左滚动。
实例
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
# !/usr/bin/python# -*- coding: UTF-8 -*-from tkinter import *import tkintertop = Tk()L1 = Label(top, text="公众号")L1.pack(side=LEFT)E1 = Entry(top, bd=5)E1.pack(side=RIGHT)top.mainloop()
六、框架组件Python Tkinter 框架(Frame)控件在屏幕上显示一个矩形区域,多用来作为容器。语法格式如下:
w = Frame( master, option=value, ... ) 其中,master表示按钮的父容器;options为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号可选项 & 描述
1bg:框架背景颜色
2bd:框架的大小,默认为 2 个像素
3cursor:鼠标移动到框架时,光标的形状,可以设置为arrow, circle,cross, plus 等。
4height:框架的高度,默认值是 0。
5highlightbackground:框架没有获得焦点时,高亮边框的颜色,默认由系统指定。
6highlightcolor:框架获得焦点时,高亮边框的颜色
7highlightthickness:指定高亮边框的宽度,默认值为0不带高亮边框)
8relief:边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
9width:设置框架宽度,默认值是 0。
10takefocus:指定该组件是否接受输入焦点(用户可以通过tab 键将焦点转移上来),默认为 false。
实例
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
#!/usr/bin/python# -*- coding: UTF-8 -*-# python3 使用 tkinterfrom tkinter import *def say_hi(): print("hello ~ !")root = Tk()frame1 = Frame(root)frame2 = Frame(root)root.title("tkinter frame")label= Label(frame1,text="Label",justify=LEFT)label.pack(side=LEFT)hi_there = Button(frame2,text="say hi~",command=say_hi)hi_there.pack()frame1.pack(padx=1,pady=1)frame2.pack(padx=10,pady=10)root.mainloop()
页:
[1]