tkinter的函数与实例1、使⽤tkinter.Tk() ⽣成主窗⼝(root=tkinter.Tk())
root.title('标题名') 修改框体的名字,也可在创建时使⽤className参数来命名;
root.quit() 退出;
root.update_idletasks()
root.update() 刷新页⾯;
2、初级样例
1 import tkinter
2 root=tkinter.Tk() #⽣成root主窗⼝
3 label=tkinter.Label(root,text='Hello,GUI') #⽣成标签
4 label.pack() #将标签添加到主窗⼝
5 button1=tkinter.Button(root,text='Button1') #⽣成button1
6 button1.pack(side=tkinter.LEFT) #将button1添加到root主窗⼝
7 button2=tkinter.Button(root,text='Button2')
8 button2.pack(side=tkinter.RIGHT)
9 root.mainloop() #进⼊消息循环(必需组件)
3、tkinter中的15种核⼼组件
Button 按钮;
Canvas 绘图形组件,可以在其中绘制图形;
Checkbutton 复选框;
Entry ⽂本框(单⾏);
Text ⽂本框(多⾏);
Frame 框架,将⼏个组件组成⼀组
Label 标签,可以显⽰⽂字或图⽚;
Listbox 列表框;
Menu 菜单;
Menubutton 它的功能完全可以使⽤Menu替代;
Message 与Label组件类似,但是可以根据⾃⾝⼤⼩将⽂本换⾏;
Radiobutton 单选框;
Scale 滑块;允许通过滑块来设置⼀数字值
Scrollbar 滚动条;配合使⽤canvas, entry, listbox, and text窗⼝部件的标准滚动条;
Toplevel ⽤来创建⼦窗⼝窗⼝组件。
(在Tkinter中窗⼝部件类没有分级;所有的窗⼝部件类在树中都是兄弟。)
4、组件的放置和排版(pack,grid,place)
anchor的含义
坐标
pack组件设置位置属性参数:
after: 将组件置于其他组件之后;
before: 将组件置于其他组件之前;
anchor: 组件的对齐⽅式,顶对齐'n',底对齐's',左'w',右'e'
side: 组件在主窗⼝的位置,可以为'top','bottom','left','right'(使⽤时tkinter.TOP,tkinter.E); fill 填充⽅式 (Y,垂直,X,⽔平)
expand 1可扩展,0不可扩展
grid组件使⽤⾏列的⽅法放置组件的位置,参数有:
column: 组件所在的列起始位置;
columnspam: 组件的列宽;
row: 组件所在的⾏起始位置;
rowspam: 组件的⾏宽;
place组件可以直接使⽤坐标来放置组件,参数有:
anchor: 组件对齐⽅式;
x: 组件左上⾓的x坐标;
y: 组件右上⾓的y坐标;
relx: 组件相对于窗⼝的x坐标,应为0-1之间的⼩数;
rely: 组件相对于窗⼝的y坐标,应为0-1之间的⼩数;
width: 组件的宽度;
heitht: 组件的⾼度;
relwidth: 组件相对于窗⼝的宽度,0-1;
relheight: 组件相对于窗⼝的⾼度,0-1;
5、使⽤tkinter.Button时控制按钮的参数
anchor: 指定按钮上⽂本的位置;
background(bg) 指定按钮的背景⾊;
bitmap: 指定按钮上显⽰的位图;
borderwidth(bd) 指定按钮边框的宽度;
command: 指定按钮消息的回调函数;
cursor: 指定⿏标移动到按钮上的指针样式;
font: 指定按钮上⽂本的字体;
foreground(fg) 指定按钮的前景⾊;
height: 指定按钮的⾼度;
image: 指定按钮上显⽰的图⽚;
state: 指定按钮的状态(disabled);
text: 指定按钮上显⽰的⽂本;
width: 指定按钮的宽度
padx 设置⽂本与按钮边框x的距离,还有pady;
activeforeground 按下时前景⾊
textvariable 可变⽂本,与StringVar等配合着⽤
6、⽂本框tkinter.Entry,tkinter.Text控制参数
background(bg) ⽂本框背景⾊;
foreground(fg) 前景⾊;
selectbackground 选定⽂本背景⾊;
selectforeground 选定⽂本前景⾊;
borderwidth(bd) ⽂本框边框宽度;
font 字体;
show ⽂本框显⽰的字符,若为*,表⽰⽂本框为密码框;
state 状态;
width ⽂本框宽度
textvariable 可变⽂本,与StringVar等配合着⽤
7、标签tkinter.Label组件控制参数
Anchor 标签中⽂本的位置;
background(bg) 背景⾊;
foreground(fg) 前景⾊;
borderwidth(bd) 边框宽度;
width 标签宽度;
height 标签⾼度;
bitmap 标签中的位图;
font 字体;
image 标签中的图⽚;
justify 多⾏⽂本的对齐⽅式;
text 标签中的⽂本,可以使⽤'\n'表⽰换⾏
textvariable 显⽰⽂本⾃动更新,与StringVar等配合着⽤
8、单选框和复选框Radiobutton,Checkbutton控制参数
anchor ⽂本位置;
background(bg) 背景⾊;
foreground(fg) 前景⾊;
borderwidth 边框宽度;
width 组件的宽度;
height 组件⾼度;
bitmap 组件中的位图;
image 组件中的图⽚;
font 字体;
justify 组件中多⾏⽂本的对齐⽅式;
text 指定组件的⽂本;
value 指定组件被选中中关联变量的值;
variable 指定组件所关联的变量;
indicatoron 特殊控制参数,当为0时,组件会被绘制成按钮形式;
textvariable 可变⽂本显⽰,与StringVar等配合着⽤
9、组图组件Canvas控制参数
background(bg) 背景⾊;
foreground(fg) 前景⾊;
borderwidth 组件边框宽度;
width 组件宽度;
height ⾼度;
bitmap 位图;
image 图⽚;
绘图的⽅法主要以下⼏种:
create_arc 圆弧;
create_bitmap 绘制位图,⽀持XBM;
create_image 绘制图⽚,⽀持GIF(x,y,image,anchor);
create_line 绘制⽀线;
create_oval; 绘制椭圆;
create_polygon 绘制多边形(坐标依次罗列,不⽤加括号,还有参数,fill,outline);
create_rectangle 绘制矩形((a,b,c,d),值为左上⾓和右下⾓的坐标);
create_text 绘制⽂字(字体参数font,);
create_window 绘制窗⼝;
delete 删除绘制的图形;
itemconfig 修改图形属性,第⼀个参数为图形的ID,后边为想修改的参数;
move 移动图像(1,4,0),1为图像对象,4为横移4像素,0为纵移像素,然后⽤root.update()刷新即可看到图像的移动,为了使多次移动变得可视,最好加上time.sleep()函数;
只要⽤create_⽅法画了⼀个图形,就会⾃动返回⼀个ID,创建⼀个图形时将它赋值给⼀个变量,需要ID时就可以使⽤这个变量名。
coords(ID) 返回对象的位置的两个坐标(4个数字元组);
对于按钮组件、菜单组件等可以在创建组件时通过command参数指定其事件处理函数。⽅法为bind;或者⽤bind_class⽅法进⾏类绑定,bind_all⽅法将所有组件事件绑定到事件响应函数上。
10、菜单Menu
参数:
tearoff 分窗,0为在原窗,1为点击分为两个窗⼝
bg,fg 背景,前景
borderwidth 边框宽度
font 字体
activebackgound 点击时背景,同样有activeforeground,activeborderwidth,disabledforeground
cursor
postcommand
selectcolor 选中时背景
takefocus
htmlborder
title
type
relief
⽅法:
menu.add_cascade 添加⼦选项
menu.add_command 添加命令(label参数为显⽰内容)
menu.add_separator 添加分隔线
menu.add_checkbutton 添加确认按钮
delete 删除
11、事件关联
bind(sequence,func,add)——
bind_class(className,sequence,func,add)
bind_all(sequence,func,add)
事件参数:
sequence 所绑定的事件;
func 所绑定的事件处理函数;
add 可选参数,为空字符或‘+’;
className 所绑定的类;
⿏标键盘事件
<Button-1> ⿏标左键按下,2表⽰中键,3表⽰右键;
<ButtonPress-1> 同上;
<ButtonRelease-1> ⿏标左键释放;
<B1-Motion> 按住⿏标左键移动;
<Double-Button-1> 双击左键;
<Enter> ⿏标指针进⼊某⼀组件区域;
<Leave> ⿏标指针离开某⼀组件区域;
<MouseWheel> 滚动滚轮;
<KeyPress-A> 按下A键,A可⽤其他键替代;
<Alt-KeyPress-A> 同时按下alt和A;alt可⽤ctrl和shift替代;
<Double-KeyPress-A> 快速按两下A;
<Lock-KeyPress-A> ⼤写状态下按A;
窗⼝事件
Activate 当组件由不可⽤转为可⽤时触发;
Configure 当组件⼤⼩改变时触发;
Deactivate 当组件由可⽤转变为不可⽤时触发;
Destroy 当组件被销毁时触发;
Expose 当组件从被遮挡状态中暴露出来时触发;
Unmap 当组件由显⽰状态变为隐藏状态时触发;
Map 当组件由隐藏状态变为显⽰状态时触发;
FocusIn 当组件获得焦点时触发;
FocusOut 当组件失去焦点时触发;
Property 当窗体的属性被删除或改变时触发;
Visibility 当组件变为可视状态时触发;
响应事件
event对象(def function(event)):
char 按键字符,仅对键盘事件有效;
keycode 按键名,仅对键盘事件有效;
keysym 按键编码,仅对键盘事件有效;
num ⿏标按键,仅对⿏标事件有效;
type 所触发的事件类型;
widget 引起事件的组件;
width,heigh 组件改变后的⼤⼩,仅Configure有效;
x,y ⿏标当前位置,相对于窗⼝;
x_root,y_root ⿏标当前位置,相对于整个屏幕[![复制代码](commonblogs/images/copycode.gif)](javascript:void(0);
12、弹窗
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论