打印

Python Tkinter GUI六大基础组件

[复制链接]
709|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

一、按钮组件

Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。

语法格式如下:

w = Button ( master, option=value, ... )

其中,master表示按钮的父容器;options为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。




序号
可选项 & 描述

1

activebackground:当鼠标放上去时,按钮的背景色

2

activeforeground:当鼠标放上去时,按钮的前景色

3

bd:按钮边框的大小,默认为 2 个像素

4

bg:按钮的背景色

5

command:按钮关联的函数,当按钮被点击时,执行该函数

6

fg:按钮的前景色(按钮文本的颜色)

7

font:文本字体

8

height:按钮的高度

9

highlightcolor:要高亮的颜色

10

image:按钮上要显示的图片

11

justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT,  RIGHT, CENTER

12

padx:按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离

13

pady:按钮在y轴方向上的内边距(padding)

14

relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。

15

state:设置按钮组件状态,可选的有NORMAL、ACTIVE、 DISABLED。默认 NORMAL。

16

underline:下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,

为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推

17

width:按钮的宽度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小)

18

wraplength:限制按钮每行显示的字符的数量

19

text:按钮的文本内容

20

anchor:锚选项,控制文本的位置,默认为中心

方法
以下为组件常用的方法:
[td]
方法
描述

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: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。


序号
可选项 & 描述

1

bd:边框宽度,单位像素,默认为  2 像素。

2

bg:背景色

3

confine:如果为 true (默认), 画布不能滚动到可滑动的区域外。

4

cursor:光标的形状设定,如arrow, circle,  cross, plus 等

5

height:高度

6

highlightcolor:要高亮的颜色

7

relief:边框样式,可选值为 FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。

8

scrollregion:一个元组 tuple (w, n, e, s) ,定义了画布可滚动的最大区域,

w  为左边,n  为头部,e  为右边,s  为底部。

9

width:画布在 X 坐标轴上的大小。

10

xscrollincrement:用于滚动请求水平滚动的数量值。

11

xscrollcommand:水平滚动条,如果画布是可滚动的,则该属性是水平滚动条的

.set()方法。

12

yscrollincrement:类似 xscrollincrement, 但是垂直方向。

13

yscrollcommand:垂直滚动条,如果画布是可滚动的,则该属性是垂直滚动条的

.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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。

序号
可选项 & 描述

1

activebackground:当鼠标放上去时,按钮的背景色

2

activeforeground:当鼠标放上去时,按钮的前景色

3

bg:按钮的背景色

4

bitmap:位图

5

bd:边框的大小,默认为 2 个像素

6

command:关联的函数,当按钮被点击时,执行该函数

7

cursor:光标的形状设定,如arrow, circle,  cross, plus 等

8

disabledforeground:禁用选项的前景色

9

font:文本字体

10

fg:选项的前景色

11

height:复选框文本行数,默认为 1。

12

highlightcolor:聚焦的高亮颜色

13

image:是否使用图标

14

justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括

LEFT,  RIGHT, CENTER

15

offvalue:Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,

可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。

16

onvalue:Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,

可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。

17

padx:按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边

缘的距离,默认为  1 像素。

18

pady:按钮在y轴方向上的内边距(padding),默认为 1 像素。

19

relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。

20

selectcolor:选中后的颜色,默认为  selectcolor="red"。

21

selectimage:选中后的图片

22

state:状态,默认为 state=NORMAL

23

text:显示的文本,使用 "\n" 来对文本进行换行。

24

underline:下划线。默认按钮上的文本都不带下划线。取值就是带下划

线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符

带下划线,以此类推

25

variable:变量,variable 的值为 1 或 0,代表着选中或不选中

26

width:默认宽度是复选框的文本或图像决定的,你可以设置指定字符数。

27

wraplength:是否设置包裹。

方法
以下为常用的方法:
序号
方法 & 描述

1

deselect():清除复选框选中选项。

2

flash():在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它

开始时的状态。

3

invoke():可以调用此方法来获得与用户单击单选按钮以更改其状态时

发生的操作相同的操作

4

select():设置按钮为选中。

5

toggle():选中与没有选中的选项互相切换

实例

实例中点击按钮会显示一个信息:


# !/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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。


序号
可选项 & 描述

1

anchor:文本或图像在背景内容区的位置,默认为 center,可选值为

(n,s,w,e,ne,nw,sw,se,center)eswn 是东南西北英文的首字母,表示

:上北下南左西右东。


2

bg:标签背景颜色

3

bd:标签的大小,默认为 2 个像素

4

bitmap:指定标签上的位图,如果指定了图片,则该选项忽略

5

cursor:鼠标移动到标签时,光标的形状,可以设置为  arrow, circle,

cross, plus 等。

6

font:设置字体。

7

fg:设置前景色。

8

height:标签的高度,默认值是 0。

9

image:设置标签图像。

10

justify:定义对齐方式,可选值有:LEFT,RIGHT,CENTER,默认为 CENTER。

11

padxx:轴间距,以像素计,默认 1。

12

padyy :轴间距,以像素计,默认 1。

13

relief:边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、

RIDGE。默认为 FLAT。

14

text:设置文本,可以包含换行符(\n)。

15

textvariable:标签显示 Tkinter 变量,StringVar。如果变量被修改,

标签文本将自动更新。

16

underline:设置下划线,默认 -1,如果设置 1,则是从第二个字符开始

画下划线。

17

width:设置标签宽度,默认值是 0,自动计算,单位以像素计。

18

wraplength:设置标签文本为多少行显示,默认为  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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。

序号
可选项 & 描述

1

bg:输入框背景颜色

2

bd:边框的大小,默认为 2 个像素

3

cursor:光标的形状设定,如arrow, circle,  cross, plus 等

4

font:文本字体

5

exportselection:默认情况下,你如果在输入框中选中文本,默认会复制

到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。

6

fg:文字颜色。值为颜色或为颜色代码,如:'red','#ff0000'

7

highlightcolor:文本框高亮边框颜色,当文本框获取焦点时显示

8

justify:显示多行文本的时候,设置不同行之间的对齐方式,

可选项包括LEFT, RIGHT, CENTER

9

relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、

RAISED、GROOVE、RIDGE。默认为 FLAT。

10

selectbackground:选中文字的背景颜色

11

selectborderwidth:选中文字的背景边框宽度

12

selectforeground:选中文字的颜色

13

show:指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值

设为 show="*"

14

state:默认为 state=NORMAL, 文框状态,分为只读和可写,值为:

normal/disabled

15

textvariable:文本框的值,是一个StringVar()对象

16

width:文本框宽度

17

xscrollcommand:设置水平方向滚动条,一般在用户输入的文本框内容宽度

大于文本框显示的宽度时使用。

方法

下表为文本框组件常用的方法:

序号
方法 & 描述

1

delete ( first,  last=None ):删除文本框里直接位置值

text.delete(10)      # 删除索引值为10的值text.delete(10, 20)  # 删除索引值从1020之前的值text.delete(0, END)  # 删除所有值

2

get():获取文件框的值

3

icursor ( index ):将光标移动到指定索引位置,只有当文框获取焦点后成立

4

index ( index ):返回指定的索引值

5

insert ( index, s  ):向文本框中插入值,index:插入位置,s:插入值

6

select_adjust ( index ):选中指定索引和光标所在位置之前的值

7

select_clear():清空文本框

8

select_from (  index ):设置光标的位置,通过索引值 index 来设置

9

select_present():如果有选中,返回 true,否则返回 false。

10

select_range (  start, end ):选中指定索引位置的值,start(包含) 为开始位置,end(不包含) 为结束位置start必须比end小

11

select_to ( index  ):选中指定索引与光标之间的值

12

xview ( index ):该方法在文本框链接到水平滚动条上很有用。

13

xview_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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。

序号
可选项 & 描述

1

bg:框架背景颜色

2

bd:框架的大小,默认为 2 个像素

3

cursor:鼠标移动到框架时,光标的形状,可以设置为  arrow, circle,

cross, plus 等。

4

height:框架的高度,默认值是 0。

5

highlightbackground:框架没有获得焦点时,高亮边框的颜色,

默认由系统指定。

6

highlightcolor:框架获得焦点时,高亮边框的颜色

7

highlightthickness:指定高亮边框的宽度,默认值为  0不带高亮边框)

8

relief:边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、

RIDGE。默认为 FLAT。

9

width:设置框架宽度,默认值是 0。

10

takefocus:指定该组件是否接受输入焦点(用户可以通过  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()

70198626fb8b99ffe2.png (44.37 KB )

70198626fb8b99ffe2.png

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq:641208111;技术交流群:377640799 大学电子竞赛预热赛开赛啦~千元大奖等你来拿火热进行中!!点击参加活动 欢迎加个人QQ:641208111一起交流合作

140

主题

3082

帖子

23

粉丝