发布时间:2018-05-30 17:13:25编辑:Run阅读(3799)
Button 功能触发事件
一个简单的button应用
示例:
import tkinter as tk # 定义button的回调函数 def py3study(): print('www.py3study.com') root = tk.Tk() # 初始化Tk # bg为button背景色, fg为button字体颜色 tk.Button(root, bg='yellow', fg='red', text='Hello button', command=py3study).pack() # 进入消息循环 root.mainloop()
效果:
测试 Button 的 relief 属性
Tkinter Relief styles: 构件的浮雕式是指某些模拟的3-D周围的部件外的影响
下面是可能的提供救济属性可以使用的常数列表
FLAT 平面
RAISED 上调
SUNKEN 凹陷
GROOVE 槽
RIDGE 岭
示例:
注意relief='flat' 必须用引号引起来且需要小写
import tkinter as tk root = tk.Tk() # 初始化Tk tk.Button(root, text='Hello button', relief='flat').pack() tk.Button(root, text='Hello button', relief='groove').pack() tk.Button(root, text='Hello button', relief='raised').pack() tk.Button(root, text='Hello button', relief='solid').pack() tk.Button(root, text='Hello button', relief='sunken').pack() # 进入消息循环 root.mainloop()
效果:
与Label一样,Button也可以同时显示文本和图像,也可以设置颜色使用
属性compound
示例:
bottom 图标在文字下面显示
top 图标在文字上面显示
right 图标在文字后边显示
left 图标在文字左边显示
center 图标覆盖文字显示
示例:
import tkinter as tk root = tk.Tk() # 初始化Tk # 也可以设置颜色,bg为button背景色, fg为button字体颜色 tk.Button(root, text='bottom', compound='bottom', bitmap='error', relief='flat').pack() tk.Button(root, text='top', compound='top',bitmap='error',relief='groove').pack() tk.Button(root, text='right', compound='right',bitmap='error',relief='raised').pack() tk.Button(root, text='left', compound='left',bitmap='error',relief='solid').pack() tk.Button(root, text='center', compound='center',bitmap='error',relief='sunken').pack() # 进入消息循环 root.mainloop()
效果:
控件焦点问题:
创建三个Button,各自对应回调函数;将第二个Button设置焦点,程序运行是按“Enter”判断程序的打印结果
bind方法,它建立事件与回调函数(相应函数)之间的关系,每当产生<Return>事件后,程序便自动的调用 cb2,与 cb1,cb3不同的是,它本身还带有一个参数----event,这个参数传递响应事件的信息
代码:
import tkinter as tk def cb1(): print('button1') def cb2(event): # 接收一个参数event print('button2') def cb3(): print('button3') root = tk.Tk() b1 = tk.Button(root, text='button1', command=cb1) b2 = tk.Button(root, text='button2') # bind方法,它建立事件与回调函数(相应函数)之间的关系, # 每当产生<Return>事件后,程序便自动的调用 cb2,与 cb1,cb3不同的是, # 它本身还带有一个参数----event,这个参数传递响应事件的信息 b2.bind("<Return>", cb2) b3 = tk.Button(root, text='button3', command=cb3) b1.pack() b2.pack() b3.pack() # focus_set获取b2的返回值 b2.focus_set() root.mainloop()
效果:--> button2 按回车键触发
示例2:
import tkinter as tk def printEventInfo(event): print('event.time = {}'.format(event.time)) print('event.type = {}'.format(event.type)) print('event.widgetid = {}'.format(event.widget)) print('event.keysymbol = {}'.format(event.keysym)) root = tk.Tk() bt = tk.Button(root, text='Infomation') bt.bind("<Return>", printEventInfo) bt.pack() bt.focus_set() root.mainloop()
效果:
上一篇: tkinter -- 文本的多行显示
下一篇: tkinter -- button2
47745
46235
37110
34627
29229
25886
24745
19863
19417
17908
5716°
6315°
5835°
5888°
6984°
5829°
5846°
6361°
6316°
7673°