tkinter -- button1

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()

效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hightopo

基于 HTML5 Canvas 的属性值点击出现多选项的制作

14820
来自专栏Java后端技术

细谈CSS布局方式

  [2].浮动布局方式:通过设置html的float属性显示,值:none不浮动、left对象向左浮动,而后面的内容流向对象的右侧、right对象向右浮动,而...

12820
来自专栏从零开始学 Web 前端

从零开始学 Web 之 DOM(一)DOM的概念,对标签操作

我们把 html 文件看成一个文档,因为万物皆对象,所以这个文档也是一个对象。这个文档中所有的标签都可以看成一个对象,比如 div 标签,p 标签等。

12620
来自专栏超然的博客

CSS 居中

给父元素设置float,然后父元素设置position:relative和left:50%,子元素设置position:relative和left:-50%来实...

11910
来自专栏小筱月

jQuery 事件绑定 和 JavaScript 原生事件绑定

jQuery 中提供了四种事件监听绑定方式,分别是 bind、live、delegate、on,

24920
来自专栏LIN_ZONE

js 画布与图片的相互转化(canvas与img)

//将图片对象转化为画布,返回画布 function ImageToCanvas(image) { var canvas = document.createE...

21020
来自专栏cnblogs

Bootstrap源码分析之transition、affix

一、Transition(过滤) 作为一个基础支持的组件,被其他组件多次引用。实现根据浏览器支持transition的能力,然后绑定动画的结束事件; 首先:创建...

21770
来自专栏Java技术分享圈

杨老师课堂之JavaScript案例手动切换轮播图片

        2.1跳转div盒子的布局(宽、高、边框线、水平居中、文字居中...)

13520
来自专栏Java帮帮-微信公众号-技术文章全总结

02.HTML元素/属性/标题/段落/文本格式化/链接

02.HTML元素/属性/标题/段落 /文本格式化/链接 HTML 元素 ---- HTML 文档由 HTML 元素定义。 ---- HTML 元素 开始标签 ...

62230
来自专栏前端说吧

JS-DOM对象知识点汇总(慕课)

30670

扫码关注云+社区

领取腾讯云代金券