python3.8的tkinter按钮事件函数实现多个参数

本文介绍如何在Python的Tkinter库中使用按钮组件(Button),并实现事件函数处理。通过实例展示了如何创建多个按钮,使用循环和字典来管理按钮对象,以及如何将按钮的行列数或标题作为参数传递给事件函数,实现按钮功能的动态调整。
部署运行你感兴趣的模型镜像

外孙女要学Python,由于我以前没有学过,这些天也开始学Python。在tkinter建立的窗体中增加按钮Button,当单击按钮后,一般要调用事件响应函数,如果事件函数无参数,在建立Button对象时,用下列代码指定Button对象的事件函数:

import tkinter as tk
root = tk.Tk()
def hit_me():
    button['text']='点击了我'
button=tk.Button(root, text="点击我", command=hit_me)
button.place(x=20,y=20,width = 70,height = 55)
root.mainloop()

在编程中有时事件函数需要参数。例如编写计算器程序,至少需要0到9这10个按钮,它们事件函数完成的功能很简单,又很相似。如果用10条语句建立按钮对象,编写10个事件函数,显然将使代码很长,也没有必要。比较好的方法是,用循环方法建立对象,将0到9作为键和对应按钮对象组成键值对保存到字典中,使以后代码很容易找到相应对象。所有按钮共用一个事件函数,在建立对象时,将对应的0到9传递给事件函数,事件函数根据参数很容易知道是那个按钮被按下,做不同的处理。下边是是一个简单例子。更实际的应用可参见博文:用39条Python语句完成“数字华容道”游戏。

import tkinter as tk
root = tk.Tk()
def hit_me(x,y):           #单击标题为0,1,2按钮,标题为3按钮标题改为被单击按钮标题
    if (x==0 and y==0) or (x==0 and y==1) or (x==1 and y==0):
        buttons[1,1]['text']=buttons[x,y]['text']
    else:                 #单击标题为3按钮,其标题改为H
        buttons[x,y]['text']='H'
buttons={}
n = 0
for row in range(2):
    for col in range(2):   #下一句事件函数参数是按钮的行列数,当然也可是按键的标题     
        button = tk.Button(root,text=str(n),command=lambda x=row,y=col:hit_me(x,y))
        button.place(x=20+col*60,y=20+row*60,width=50,height=50)
        buttons[row,col]=button    #键可以理解为元组
        n += 1
root.mainloop()

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值