学习笔记-Python Tkinter

1.简介

  • Tkinter是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
    由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如

2.常用控件

  • Label(标签,就是界面上显示的字)
  • Entry(输入框)
  • Button(按钮,可以绑定各种封装函数)
  • Radiobutton(单选框)
  • Checkbuttion(复选框)
  • messagebox(消息弹出框)
  • Text(文本编辑框)
  • Listbox(列表控件)
  • Scrollbar(滚条控件)

3.控件参数

  • title:设置窗口的标题
参数 描述 实例
title 窗口标题 tk.TK().title("xxx")
geometry 设置窗口大小,中间不能是*,而是x tk.TK().geometry("100X100")
resizable 设置窗口是否可以变化高(height)、 宽(width),True为可以变化,False为不可变化 tk.TK().resizable("width=False, height=True")
  • Label:标签
参数 描述 实例
text 需要在界面显示的Label标签内容 Label(root,text=‘xxxxx’)
height 组件的高度(所占行数) Label(root,text=‘xxxxx’,height=2)
width 组件的宽度(所占字符个数) Label(root,text=‘xxxxx’,height=2,width=20)
fg 前景字体颜色 Label(root,text=‘xxxxx’,fg='blue')---显示字体为蓝色
bg 背景字体颜色 Label(root,text=‘xxxxx’,bg='blue')---显示字体为蓝色
justify 多行文本的对齐方式,可选参数为: LEFT、 CENTER、RIGHT,分别是向左、居中、向右对齐 Label(root,text=‘xxxxx’,justify=tk.LEFT)
padx 文本左右两侧的空格数(默认为1) Label(root,text=‘xxxxx’,padx=5)
pady 文本上下的空格数(默认为1) Label(root,text=‘xxxxx’,pady=5)
font 字体格式和大小 Label(Label(root,text=‘xxxxx’,font=("微软雅黑", 12))
photo 设置背景图片,事先需要指定图片路径 photo=tk.PhotoImage(file='指定图片路径')Label(root,text=‘xxxxx’,image=photo)
compound 图像背景图位置,可选参数为:botton、top、right、left、center(下、上、右、左、文字覆盖图像) photo=tk.PhotoImage(file='指定图片路径')Label(root,text=‘xxxxx’,image=photo,compound=tk.center)
  • Button:按钮
参数 描述 实例
text 按钮图标显示内容 Button(root,text='xxxx')
height 组件的高度(所占行数) Button(root,text='xxxx',height=2)
width 组件的宽度(所占字符个数) Button(root,text='xxxx',height=2,width=10)
fg 前景字体颜色 Button(text='xxxx',fg='blue')---显示按钮字体颜色为蓝色
bg 背景字体颜色 Button(text='xxxx',bg='blue')---显示按钮字体颜色为蓝色
activebackground 按钮按下时的背景颜色 Button(root,text='xxxx',activebackground='grey')
activeforeground 按钮按下时的前景字体颜色 Button(root,text='xxxx',activeforeground='black')
justify 多行文本的对齐方式,可选参数为: LEFT、 CENTER、RIGHT,分别是向左、居中、向右对齐 Button(root,text=‘xxxxx’,justify=tk.LEFT)
padx 文本左右两侧的空格数(默认为1) Button(root,text=‘xxxxx’,padx=5)
pady 文本上下的空格数(默认为1) Button(root,text=‘xxxxx’,pady=5)
command 按钮触发执行的命令(函数) Button(root,text='xxxx',command=函数)
  • Entry:输入框
参数 描述 实例
width 组件的宽度(所占字符个数) Entry(root,width=20)
fg 前景字体颜色 Entry(root,fg='blue')
bg 背景字体颜色 Entry(root,bg='blue')
show 将Entry框中的文本替换为指定字符,用于输入密码等,如设置 show="*" Entry(root,show="*")
state 设置组件状态,默认为normal,可设置为:disabled—禁用组件,readonly—只读 Entry(root,state=readonly)
textvariable 指定变量,需要事先定义一个变量,在Entry进行绑定获取变量的值 text=tk.StringVar() Entry(root,textvariable=text)
  • Radiobutton:单选框
参数 描述 实例
text 单选框文本显示内容 Radiobutton(root,text='xxxx')
variable 单选框索引变量,通过变量的值确定哪个单选框被选中。一组单选框使用同一个索引变量,需要事先设定一个变量 color=tk.StringVar() Radiobutton(root,variable=color)
value 单选框选中时设定变量的值 color=tk.StringVar()Radiobutton(root,variable=color,value='red'
command 单选框选中时执行的命令(函数) color=tk.StringVar()Radiobutton(root,variable=color,value='red',command=函数)
  • Checkbuttion:复选框
参数 描述 实例
text 复选框显示的文本 Checkbutton(root,text='xxxx')
variable 复选框索引变量,通过变量的值确定哪些复选框被选中。每个复选框使用不同的变量,使复选框之间相互独立,事先需要定义不同的变量 typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod)
onvalue 复选框选中(有效)时变量的值,可以通过计算值来判断分支不同的效果,计算值由自己设定 typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod,onvalue=1)
offvalue 复选框未选中(无效)时变量的值,可以通过计算值来判断分支不同的效果,一般设置为0 typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod,onvalue=1,offvalue=0)
command 复选框选中时执行的命令(函数) typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod,onvalue=1,offvalue=0,command=函数)
  • Text:文本框
参数 描述 实例 备注
t.insert(mark, 内容) 插入文本信息,mark可以是行号,或者特殊标识 t=tk.Text()t.insert(END,'插入的文本信息') INSERT:光标 的插入点, CURRENT:鼠标的当前位置所对应的字符 ,END:Textbuffer的最后一个字符,SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常,SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发异常
t.delete(mark1, mark2) 删除文本信息 INSERT:光标的插入点, CURRENT:鼠标的当前位置所对应的字符 ,END:Textbuffer的最后一个字符,SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常,SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发异常
  • ListBox:列表控件
参数 描述
master 代表了父窗口
bg 背景色,如bg=”red”, bg="#FF56EF"
fg 前景色,如fg=”red”, fg="#FF56EF"
height 设置显示高度、如果未设置此项,其大小以适应内容标签
width 设置显示宽度,如果未设置此项,其大小以适应内容标签
status 设置组件状态;正常(normal),激活(active),禁用(disabled)
bd 设置Button的边框大小;bd(bordwidth)缺省为1或2个像素
selectmode 选择模式,MULTIPLE:多选 BROWSE:通过鼠标的移动选择 EXTENDED:shift和ctrl配合使用
listvariable 设置listvariable属性
relief 指定外观装饰边界附近的标签,默认是平的,可以设置的参数:flat、groove、raised、ridge、solid、sunken

常用函数

函数 描述
insert 追加item,如listbox.insert(0,"addBox1","addBox2")
delete 删除item,如listbox.delete(3,4),删除全部(0,END)
select_set 选中,如listbox.select_set(0,2)
select_clear 取消选中如listbox.select_clear(0,1)
get 返回制定索引的项值,如listbox.get(1);返回多个项值,返回元组,如listbox.get(0,2);返回当前选中项的索引listbox.curselection()
curselection() 返回当前选中项的索引,如listbox.curselection()
selection_includes 判断当前选中的项目中是否包含某项,如listbox.selection_includes(4)

消息弹出框

属性 描述 举例
showinfo info信息提示,弹出提示框 msgbox.showinfo("INFO","Showinfo test"),INFO是提示框title,Showinfo test是提示框内容
showwarning warning警告信息提示,弹出警告框 框 msgbox.showwarning("WARNING","Warning test"),WARNING是警告框title,Warning test是警告框内容
showerrot error错误信息提示,弹出错误框 msgbox.showerror("ERROR","Error test"),ERROR是错误框title,Error test是错误框内容
askquestion 提问窗口提示 msgbox.askquestion("Question","Askquestion test")
askokcancel 确定与取消窗口提示 msgbox.askokcancel("OkCancel","Askokcancel test")
askretrycancel 确定与取消窗口提示 msgbox.askretrycancel("Retry","Askretrycancel test")
askretrycancel 重试与取消窗口提示 msgbox.askretrycancel("Retry","Askretrycancel test")

4.构建框架

  • frame:
    内嵌框架,可以在一个图形界面中设定多个frame框架,也可以在frame再次嵌套frame
frame=tk.Frame(父类框架)
frame.pack()
  • pack属性:
属性 描述 备注 其他
fill 设置组件是否向水平或垂直方向填充,包含X、Y、BOTH、NONE fill = X(水平方向填充) fill = Y(垂直方向填充)fill = BOTH(水平和垂直)NONE 不填充
expand 设置组件是否展开,当值为YES时,side选项无效。组件显示在父容器中心位置;若fill选项为BOTH,则填充父组件的剩余空间。它表示某个控件在fill那个方向,要不要把空白的地方分配给它 YES 、NO(1、0) 若expand=True或者expand=1,表示在fill那个方向,把空白处都分给这个控件,让它尽量占满。若expand=False或者expand=0,表示在fill那个方向,有空也不给它。
side 设置组件的对齐方式 LEFT、TOP、RIGHT、BOTTOM 值为左、上、右、下
ipadx、ipady 设置x方向(或者y方向)内部间隙(子组件之间的间隔),它表示某个控件的内边距,即控件边缘和这个控件内容(文字图片什么的)的间距 可设置数值,默认是0 非负整数,单位为像素
padx、pady 设置x方向(或者y方向)外部间隙(与之并列的组件之间的间隔),它表示某个控件的外边距,即控件边缘和这个控件所在容器之间的间距 可设置数值,默认是0 非负整数,单位为像素
anchor 锚选项,当可用空间大于所需求的尺寸时,决定组件被放置于容器的何处,它表示某个控件在容器里的摆放方式,是左还是右,是上还是下 N、E、S、W、NW、NE、SW、SE、CENTER(默认值为CENTER) 表示八个方向以及中心
  • grid属性:
属性 描述 举例
row,column 它表示某个控件要放在第几行网格或第几列网格,下标都是从0开始计的 xxx.grid(column=1,row=1)
rowspan,columnspan 它表示某个控件将会竖着跨几行或横着跨几列,默认都是1 xxx.grid(column=1,row=1,columnspan=2)xxx.grid(column=1,row=1,rowspan=2)
padx,pady 它表示某个控件的外边距,即控件边缘和这个控件所在容器之间的间距,单位是像素 xxx.grid(column=1,row=1,padx=10)xxx.grid(column=1,row=1,pady=10)
ipadx,ipady 它表示某个控件的内边距,即控件边缘和这个控件内容(文字图片什么的)的间距,单位是像素 xxx.grid(column=1,row=1,ipadx=10)xxx.grid(column=1,row=1,ipady=10)
sticky 它表示某个控件在网格里的摆放方式,是左还是右,是上还是下,即使窗口被拉大也会按照指定方向对齐 若sticky=N,表示North,尽可能往北面/上面停靠若sticky=S,表示South,尽可能往南面/下面停靠。若sticky=W,表示West,尽可能往西边/左边停靠。若sticky=E,表示East,尽可能往东边/右边停靠。若sticky=NS,表示NorthSouth,尽可能往南北方向/上下拉伸。若sticky=EW,表示EastWest,尽可能往东西方向/左右拉伸。若sticky=CENTER,尽可能往中心停靠。

你可能感兴趣的:(学习笔记-Python Tkinter)