python - 是否可以为所有按钮设置鼠标悬停功能?(仅在一项功能中)
问题描述
我的鼠标悬停功能有问题
这是一个例子(不是问题):
def on_enter(e):
navi_frame.place(x=0, y=0)
def on_leave(e):
navi_frame.place(x=-200, y=0)
#navigation frame on left side
navi_frame = Frame(root, bg="black", width=250, height=1200)
navi_frame.place(x=0, y=0)
navi_frame.bind("<Enter>", on_enter)
navi_frame.bind("<Leave>", on_leave)
这很好用,但我有很多按钮。我的问题是我为每个按钮(或框架)编写了一个新功能。我尝试了不同的方法,只为所有按钮创建一个功能......但是所有带有 if 语句等的东西都不起作用(我试过了)。我没有找到任何指导,所以我想问你们...... 还是不可能,我需要为每个按钮编写一个新功能?
解决方案
您可以通过列出所有按钮然后使用 for loop 来做到这一点。如下所示
b=[Button(r, text=x) for x in range(10)]
接着
for x in range(10):
b[x].bind("<Button>" , lambda event,i=x:fun(i))
其中 fun 是以整数作为输入的函数
def fun(ButtonNumber):
print(ButtonNumber)
推荐阅读
- java - 如何获取 java -jar
使用 Java 11 运行? - javascript - 在每帧 rAF 之前运行任务的可靠方法
- linux - 从 cron 中的另一个脚本运行 sh 脚本
- javascript - 如何动态拆分数组?
- php - 如何将 Microsoft 登录添加到 PHP Web 应用程序
- php - 临时更改运行进程的身份
- python - Python Cryptography 导出密钥到 DER
- python - 如何在 DataFrame 列中查找所有唯一数据类型?
- google-chrome - 安装错误:包无效。信息:“无法加载背景脚本“back.js”。”
- sql - sql中Select查询中的案例