【TkInter】布局管理和事件系统

1. Tkinter事件管理器属性和方法

2. 事件系统绑定方式和事件一览表

组件通用属性1Dimension控件大小;
2Color控件颜色;
3Font控件字体;
4Anchor锚点;
5Relief控件样式;
6Bitmap位图;
7Cursor光标;
Pack属性1after参数为另一个控件,在pack布局另外的那个控件之后再布局该控件
2anchor用于确定控件被放置相对于父控件的位置,可选项有'e','s','w','n','sw','se','nw','ne','center',默认为'center'
3before参数为另一个控件,在pack布局另外的那个控件之前先布局该控件,指定控件在容器中是否可以扩展,可以是布尔值,可以是0,1或者'no',默认为0【1】
4expand
5fill用于拉伸控件,可选的style有'none'(默认值,没有拉伸)、'x'(横向拉伸)、'y'(纵向拉伸)和'both'(双向拉伸)
6side指定将控件放置相对于父控件在哪一边,可选项是'left'(左)、'right'(右)、'top'(上)和'bottom'(下),默认为'top'
7ipadx水平的两个方向,控件内部额外添加空间,长度单位为像素
8ipady竖直的两个方向,控件内部额外添加空间,长度单位为像素
9padx水平的两个方向,控件外部额外添加空间,长度单位为像素
10pady竖直的两个方向,控件外部额外添加空间,长度单位为像素
11in_指定pack于哪一个父控件,默认为当前父控件
方法1pack_configure和pack一样
2pack_forget使控件不再被Pack几何布局管理器管理(控件并不是被删除了!依然占用内存!)
3pack_info返回一个字典,键值分别为当前控件的参数的字符串形式及值
4pack_propagate参数如果为真布尔值,如1或on,则为容器控件启用传播(见下【几何传播】),容器控件必须是窗口名。如果为假布尔值,则禁用容器控件的传播。在这两种情况下,都会返回一个空字符串。如果省略布尔值,则命令返回0或1,以指示当前是否为容器控件启用传播。默认情况下,将启用传播。
5pack_slaves返回一个列表,列表内容为该控件中所有用pack布局的子控件(按pack布局的顺序)
Grid属性1column参数为一个非负整数,0为第1列,代表控件从第一列开始布局
2columnspan参数为正整数,控件占n列
3row参数为一个非负整数,0为第1行,代表控件从第一行开始布局
4rowspan参数为正整数,控件占n行
5ipadx同上Pack
6ipady同上Pack
7padx同上Pack
8pady同上Pack
9in_同上Pack
10sticky控件在grid布局的网格中默认会居中显示,该参数可以改变其显示位置,可选参数有'n','w','s'和'e'(或N,W,S,E)(组合起来也可以用,如'nw'或NW)
方法1grid_configure同上pack
2grid_forget同上pack
3grid_info同上pack
4grid_location两个参数x和y(代表像素位置),以元组形式返回该位置(x,y)在grid的网格中的列与行,若不在,则返回-1
5grid_propagate同上pack
6grid_columnconfigure比较复杂,主要用于查询或设置网格、网格的行属性等,可选参数有minsize、weight、uniform和pad
7grid_rowconfigure类似于grid_columnconfigure
8grid_remove与grid_forget相比,它的功能只有一个区别,在grid几何布局管理移除对该控件的管理后,它会保留该控件之前的配置参数,若恢复管理,则将恢复该控件之前已配置好的参数(grid_forget没有此功能)
9grid_size以元组的形式返回网格的大小(先列后行)
10grid_slaves同上pack
11grid_content同上pack
12grid_bbox如果没有参数,将返回网格的边界框的数据(以像素为单位)。返回值由4个整数组成。前两个是从网格左上角(先x后y)的像素偏移量,后两个整数是网格的宽度和高度,也以像素为单位。,如果指定了单个列和行,则返回该单元格的边界框数据,其中左上角的单元格从零开始编号。如果同时指定了列和行参数,则返回跨越所示行和列的边界框数据。
Place属性1anchor改变place布局控件的基准点,默认为'nw'(左上角),【修改后其x参数和y参数的基准点随之改变】
2bordermode可选参数有'inside','outside'和'ignore',默认为'inside'【1】
3in_同上Pack
4relwidth设置控件宽度,参数为0~1.0,意为宽度占父控件宽度的比例,若父控件宽度为100,relwidth=0.5,则该控件宽度为100×0.5=50(像素),【与参数width冲突,两者会叠加】
5relheight设置控件高度,参数为0~1.0,意为高度占父控件高度的比例,若父控件高度为100,relheight=0.5,则该控件高度为100×0.5=50(像素),【与参数height冲突,两者会叠加】
6relx设置控件基准点(左上角)横坐标位置,参数为0~1.0,意为横坐标占父控件宽度的比例,若父控件宽度为100,relx=0.5,则该控件基准点横坐标为100×0.5=50(像素),【与参数x冲突,两者会叠加】
7rely设置控件基准点(左上角)纵坐标位置,参数为0~1.0,意为纵坐标占父控件高度的比例,若父控件高度为100,rely=0.5,则该控件基准点纵坐标为100×0.5=50(像素),【与参数y冲突,两者会叠加】
8width设定控件的宽度(单位:像素)
9height设定控件的高度(单位:像素)
10x设定控件基准点(左上角)的横坐标位置(单位:像素)
方法11y设定控件基准点(左上角)的纵坐标位置(单位:像素)
1place_configure同上pack
2place_forget同上pack
3place_info同上pack
4place_slaves同上pack
5place_content同上pack
事件机制事件属性1char键盘的字符码,如”a”键的 char 属性等于 “a”,F1 键的 char 属性无法显示。
2 keycode键盘的 ASCII 码,如 “a” 键的 keycode 属性等于 65。
3keysym键盘的符号,如 “a” 键的 keysym 属性等于 “a”,F1 键的 keysym 属性等于 “F1″。
4height,width控件的新高度与宽度,单位是像素。
5num事件发生时的鼠标按键码。
6widget事件发生所在的控件实例变量。
7x,y目前的鼠标光标位置。
8x_root,y_root相对于屏幕左上角的目前鼠标光标位置。
9type显示事件的种类。
事件绑定1after(milliseconds [, callback [, arguments]])在 milliseconds 事件后,调用 callback 函数,arguments 是 callback 函数的参数。此方法返回一个 identifier 值,可以应用在 after_cancel() 方法。
2after_cancel(identifier)取消 callback 函数,identifier 是 after() 函数的返回值。
3after_idle(callback, arguments)当系统在 idle 状态(无事可做)时,调用 callback 函数。
4bindtags()返回控件所使用的绑定搜索顺序。返回值是一个元组,包含搜索绑定所用的命名空间。
5bind(event, callback)设置 event 事件的处理函数 callback。可以使用 bind(event,callback, “+”) 格式设置多个 callback 函数。
6bind_all(event, callback)设置 event 事件的处理函数 callback。可以使用 bind_all(event,callback, “+”) 格式设置多个 callback 函数。此方法可以设置公用的快捷键。
7bind_class(widgetclass, event, callback)设置 event 事件的处理函数 callback,此 callback 函数由 widgetcalss 类而来。可以使用 bind_class(widgetclass, event, callback, “+”) 格式设置多个 callback 函数。
8<Configure>此实例变量可以用于指示当控件的大小改变,或者移到新的位置。
9 unbind(event)删除 event 事件与 callback 函数的绑定。
10 unbind_all(event)删除应用程序附属的 event 事件与 callback 函数的绑定。
11 unbind_class(event)删除 event 事件与 callback 函数的绑定。此 callback 函数由 widgetcalss 类而来。
窗体事件1<FocusOut>当控件获取焦点时候触发,比如鼠标点击输入控件输入内容,可以调用 focus_set() 方法使控件获得焦点
2<FocusIn>当控件失去焦点时激活,比如当鼠标离开输入框的时候
3<Configure>控件的发生改变的时候触发事件,比如调整了控件的大小等
4<Deactivate>当控件的状态从“激活”变为“未激活”时触发事件
5<Destroy>当控件被销毁的时候触发执行事件的函数
6<Expose>当窗口或组件的某部分不再被覆盖的时候触发事件
7<Visibility>当应用程序至少有一部分在屏幕中是可见状态时触发事件
8<Unmap>窗体隐藏时
9<Map>窗体由隐藏变为可视
10<Circulate>由于系统协议在顶层和底层显示切换
11<Property>窗体的属性被删除或改变被删除或改变
12<Destroy>组件销毁时
13<Activate>与组件state有关,组件变为可用时
14<Deactivate>组件变为不可用时
鼠标事件<modifier-type-detail>Control,Alt,Shift,Lock,Double,Triple,Quadruple
1<Enter>此事件在鼠标指针进入控件时发生。
2<Leave>此事件在鼠标指针离开控件时发生。
3<Button-1>、<ButtonPress-1>、<1>此事件在控件上单击鼠标左键时发生。同理,<Button-2> 是在控件上单击鼠标中间键时发生,<Button-3> 是在控件上单击鼠标右键时发生。
4<Button-2>、<ButtonPress-2>、<2>此事件在控件上单击鼠标左键时发生。同理,<Button-2> 是在控件上单击鼠标中间键时发生,<Button-3> 是在控件上单击鼠标右键时发生。
5<Button-3>、<ButtonPress-3>、<3>此事件在控件上单击鼠标左键时发生。同理,<Button-2> 是在控件上单击鼠标中间键时发生,<Button-3> 是在控件上单击鼠标右键时发生。
6<B1-Motion>此事件在单击鼠标左键,移动控件时发生
7<ButtonRelease-1>此事件在释放鼠标左键时发生。
8<Double-Button-1>此事件在双击鼠标左键时发生。
9<MouseWheel>鼠标滚轮事件
10<Motion>鼠标移动事件 
键盘事件1<Key>此事件在按下 ASCII 码为 48~90 时发生,即数字键、字母键及 +、~ 等符号
2<Control-Up>、{Control, Alt ,Shift}-{Up,Down,Left,Right}此事件在按下 Ctrl+Up 组合键时发生。同理,可以使用类似的名称在 Alt、Shift 键加上 Up、Down、Left 与 Right 键。
3<Return>
4<Escape>按键名
5<F1> ~ <F12>按键名
6<Num _Lock>按键名
7<Scroll_Lock>按键名
8<Caps_Lock>按键名
9<Print>按键名
10<Insert>按键名
11<Delete>按键名
12<Pause>按键名
13<Prior>Page Up
14<Next>Page Down
15<BackSpace>按键名
16<Tab>按键名
17<Cancel>按键名
18<Control_L>任意Ctl见
19<Alt_L>任意Alt键
20<Shift_L>任意shift建
21<Home>按键名
22<Up>按键名
23<Down>按键名
24<Left>按键名
25<Right>
26<KeyPress-字母>/<KeyPress-数字>
27<KeyRelease>
系统消息系统消息1widget.protocol(protocol, function_handler)tkinter 提供拦截系统信息的机制,协议处理例程(protocol handler)
2WM_DELETE_WINDOW当系统要关闭该窗口时发生。
3WM_TAKE_FOCUS当应用程序得到焦点时发生。
4WM_SAVE_YOURSELF当应用程序需要存储内容时发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

blanklog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值