一、按钮组件 Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。 语法格式如下:
w = Button ( master, option=value, ... ) 其中,master表示按钮的父容器;options为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号 | | | activebackground:当鼠标放上去时,按钮的背景色 | | activeforeground:当鼠标放上去时,按钮的前景色 | | | | | | command:按钮关联的函数,当按钮被点击时,执行该函数 | | | | | | | | | | | | justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER | | padx:按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离 | | pady:按钮在y轴方向上的内边距(padding) | | relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 | | state:设置按钮组件状态,可选的有NORMAL、ACTIVE、 DISABLED。默认 NORMAL。 | | underline:下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引, 为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推 | | width:按钮的宽度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小) | | wraplength:限制按钮每行显示的字符的数量 | | | | | 方法以下为组件常用的方法: [td]方法 | | | | | 在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它开始时 的状态。 | | 可以调用此方法来获得与用户单击单选按钮以更改其状态时发生的 操作相同的操作 | | | 实例实例中点击按钮会显示一个信息: 实例# !/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: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号 | | | | | | | confine:如果为 true (默认), 画布不能滚动到可滑动的区域外。 | | cursor:光标的形状设定,如arrow, circle, cross, plus 等 | | | | | | relief:边框样式,可选值为 FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 | | scrollregion:一个元组 tuple (w, n, e, s) ,定义了画布可滚动的最大区域, w 为左边,n 为头部,e 为右边,s 为底部。 | | | | xscrollincrement:用于滚动请求水平滚动的数量值。 | | xscrollcommand:水平滚动条,如果画布是可滚动的,则该属性是水平滚动条的 .set()方法。 | | yscrollincrement:类似 xscrollincrement, 但是垂直方向。 | | 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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。 序号 | | | activebackground:当鼠标放上去时,按钮的背景色 | | activeforeground:当鼠标放上去时,按钮的前景色 | | | | | | | | command:关联的函数,当按钮被点击时,执行该函数 | | cursor:光标的形状设定,如arrow, circle, cross, plus 等 | | disabledforeground:禁用选项的前景色 | | | | | | | | | | | | justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括 LEFT, RIGHT, CENTER | | offvalue:Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值, 可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 | | onvalue:Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值, 可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 | | padx:按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边 缘的距离,默认为 1 像素。 | | pady:按钮在y轴方向上的内边距(padding),默认为 1 像素。 | | relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 | | selectcolor:选中后的颜色,默认为 selectcolor="red"。 | | | | state:状态,默认为 state=NORMAL | | text:显示的文本,使用 "\n" 来对文本进行换行。 | | underline:下划线。默认按钮上的文本都不带下划线。取值就是带下划 线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符 带下划线,以此类推 | | variable:变量,variable 的值为 1 或 0,代表着选中或不选中 | | width:默认宽度是复选框的文本或图像决定的,你可以设置指定字符数。 | | | 方法以下为常用的方法: 序号 | | | | | flash():在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它 开始时的状态。 | | invoke():可以调用此方法来获得与用户单击单选按钮以更改其状态时 发生的操作相同的操作 | | | | | 实例实例中点击按钮会显示一个信息: # !/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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号 | | | anchor:文本或图像在背景内容区的位置,默认为 center,可选值为 (n,s,w,e,ne,nw,sw,se,center)eswn 是东南西北英文的首字母,表示 :上北下南左西右东。
| | | | | | bitmap:指定标签上的位图,如果指定了图片,则该选项忽略 | | cursor:鼠标移动到标签时,光标的形状,可以设置为 arrow, circle, cross, plus 等。 | | | | | | | | | | justify:定义对齐方式,可选值有:LEFT,RIGHT,CENTER,默认为 CENTER。 | | | | | | relief:边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、 RIDGE。默认为 FLAT。 | | | | textvariable:标签显示 Tkinter 变量,StringVar。如果变量被修改, 标签文本将自动更新。 | | underline:设置下划线,默认 -1,如果设置 1,则是从第二个字符开始 画下划线。 | | width:设置标签宽度,默认值是 0,自动计算,单位以像素计。 | | 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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。 序号 | | | | | | | cursor:光标的形状设定,如arrow, circle, cross, plus 等 | | | | exportselection:默认情况下,你如果在输入框中选中文本,默认会复制 到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。 | | fg:文字颜色。值为颜色或为颜色代码,如:'red','#ff0000' | | highlightcolor:文本框高亮边框颜色,当文本框获取焦点时显示 | | justify:显示多行文本的时候,设置不同行之间的对齐方式, 可选项包括LEFT, RIGHT, CENTER | | relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、 RAISED、GROOVE、RIDGE。默认为 FLAT。 | | selectbackground:选中文字的背景颜色 | | selectborderwidth:选中文字的背景边框宽度 | | | | show:指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值 设为 show="*" | | state:默认为 state=NORMAL, 文框状态,分为只读和可写,值为: normal/disabled | | textvariable:文本框的值,是一个StringVar()对象 | | | | xscrollcommand:设置水平方向滚动条,一般在用户输入的文本框内容宽度 大于文本框显示的宽度时使用。 | 方法下表为文本框组件常用的方法: 序号 | | | delete ( first, last=None ):删除文本框里直接位置值 text.delete(10) # 删除索引值为10的值text.delete(10, 20) # 删除索引值从10到20之前的值text.delete(0, END) # 删除所有值 | | | | icursor ( index ):将光标移动到指定索引位置,只有当文框获取焦点后成立 | | | | insert ( index, s ):向文本框中插入值,index:插入位置,s:插入值 | | select_adjust ( index ):选中指定索引和光标所在位置之前的值 | | | | select_from ( index ):设置光标的位置,通过索引值 index 来设置 | | select_present():如果有选中,返回 true,否则返回 false。 | | select_range ( start, end ):选中指定索引位置的值,start(包含) 为开始位置,end(不包含) 为结束位置start必须比end小 | | select_to ( index ):选中指定索引与光标之间的值 | | xview ( index ):该方法在文本框链接到水平滚动条上很有用。 | | 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为可选项,即该按钮的可设置的属性,这些选项可以用键 = 值的形式设置,并以逗号分隔。 序号 | | | | | | | cursor:鼠标移动到框架时,光标的形状,可以设置为 arrow, circle, cross, plus 等。 | | | | highlightbackground:框架没有获得焦点时,高亮边框的颜色, 默认由系统指定。 | | highlightcolor:框架获得焦点时,高亮边框的颜色 | | highlightthickness:指定高亮边框的宽度,默认值为 0不带高亮边框) | | relief:边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、 RIDGE。默认为 FLAT。 | | | | 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()
|