[python] tkinter简介以及各类属性参数总结

最近用tkinter+pyinstaller+python完成了一个小工具的项目,在过程当中对tkinter做了一定的了解,以此作为记录,方便日后进行查阅,也希望对各位论坛朋友有帮助。

一、tkinter简介

      tkinter是python实现gui图形界面的一个库,同时还有wxpython以及qt(本人技术还有待提高,目前就只会点tkinter,哈哈)。在我个人使用tkinter来写gui工具之后,我觉得tkinter还是蛮好理解的。

       tkinter包含了几种常用类型的控件,包括Label(标签,就是界面上显示的字)、Entry(输入框)、Button(按钮,可以绑定各种封装函数)、Radiobutton(单选框)、Checkbuttion(复选框)、messagebox(消息弹出框)、Text(文本编辑框)、Listbox(列表控件)、Scrollbar(滚条控件)等。下面会进行一些属性参数的总结。

二、tkinter各类控件参数总结

1、title:设置窗口的标题

 

属性属性简析实例
title设置窗口标题title(‘xxxxx’)
geometry设置窗口大小,中间不能是*,而是xgeometry('200x100')
resizable设置窗口是否可以变化高(height)、 宽(width),True为可以变化,False为不可变化resizable(width=False, height=True)

 

 

2、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=‘red’)---显示背景为红色
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(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=center)

3、Button:按钮

 

 

属性属性简析实例
text按钮图标显示内容Button(root,text='xxxx')
height组件的高度(所占行数)Button(root,text='xxxx',height=2)
width组件的宽度(所占字符个数)Button(root,text='xxxx',width=20)
fg前景字体颜色Button(text='xxxx',fg='blue')---显示按钮字体颜色为蓝色
bg背景颜色Button(root,text='xxxx',bg='red')---显示按钮背景为红色
activebackground按钮按下时的背景颜色Button(root,text='xxxx',activebackground='grey')
activeforeground按钮按下时的前景字体颜色Button(root,text='xxxx',activeforeground='white')
justify多行文本的对齐方式,可选参数为: LEFT、 CENTER、RIGHT,分别是向左、居中、向右对齐Button(root,text=‘xxxxx’,justify=tk.LEFT)
padx文本左右两侧的空格数(默认为1)Button(root,text='xxxx',padx=10)
pady文本上下两侧的空格数(默认为1)Button(root,text='xxxx',pady=10)
command按钮触发执行的命令(函数)Button(root,text='xxxx',command=函数)
4、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)
5、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=函数)
6、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复选框未选中(无效)时变量的值,可以通过计算值来判断分支不同的效果,一般设置为0typeBlod=tk.IntVar()
Checkbutton(root,variable=typeBlod,onvalue=1,offvalue=0)
command复选框选中时执行的命令(函数)typeBlod=tk.IntVar()
Checkbutton(root,variable=typeBlod,onvalue=1,offvalue=0,command=函数)
7、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:选中文本域的最后一个字符,如果没有选中区域则会引发异常
8、ListBox:列表控件
用法
8.1、创建:lb = ListBox(根对象, [属性列表])
8.2、绑定变量 var=StringVar()          
8.3、lb=ListBox(根对象, listvariable = var)
8.4、得到列表中的所有值   var.get()
8.5、设置列表中的所有值   var.set((item1, item2, .....))
8.6、添加:lb.insert(item)
8.7、删除:lb.delete(item,...)
8.8、绑定事件 lb.bind('<ButtonRelease-1>', 函数)
8.9、获得所选中的选项 lbl.get(lb.curselection())

9、Scrollbar:滚条

后续更新

三、tkinter构建gui框架参数

1、frame:

内嵌框架,可以在一个图形界面中设定多个frame框架,也可以在frame再次嵌套frame

frame=tk.Frame(父类框架)

frame.pack()

2、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)表示八个方向以及中心

3、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,尽可能往中心停靠。

四、消息弹出框messagebox(在这里将messagebox简称为msgbox)

消息弹出框用于info、warning、error提示框的弹出使用的,我们可以根据自己的需求来使用

 

属性属性简介实例
showinfoinfo信息提示,弹出提示框msgbox.showinfo("INFO","Showinfo test"),INFO是提示框title,Showinfo test是提示框内容
showwarningwarning警告信息提示,弹出警告框msgbox.showwarning("WARNING","Warning test"),WARNING是警告框title,Warning test是警告框内容
showerrorerror错误信息提示,弹出错误框msgbox.showerror("ERROR","Error test"),ERROR是错误框title,Error test是错误框内容
askquestion提问窗口提示msgbox.askquestion("Question","Askquestion test")
askokcancel确定与取消窗口提示msgbox.askokcancel("OkCancel","Askokcancel test")
askyesno确定与取消窗口提示msgbox.askretrycancel("Retry","Askretrycancel test")
askretrycancel重试与取消窗口提示msgbox.askretrycancel("Retry","Askretrycancel test")

 

本文转自:https://blog.csdn.net/BearStarX/article/details/81050482

转载于:https://www.cnblogs.com/aziji/articles/9529583.html

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值