You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从数据库获取自动生成的ttk.Button按钮名称?

动态生成TTK按钮后获取按钮名称的实用方案

嘿,我来帮你搞定这个问题!你现在的代码只是把按钮创建出来并放到界面上,但没有保存这些按钮的引用,所以之后想获取它们的名称就找不到对象啦。这里给你两种常用的解决思路:

1. 提前存储按钮实例,后续批量获取名称

首先,咱们用一个列表把每个创建出来的按钮都存起来,这样之后想找哪个按钮都能直接从列表里取:

# 先建个空列表专门存按钮
button_list = []
for index, dat in enumerate(data2):
    # 创建按钮的时候先把实例存到变量里
    btn = ttk.Button(master, text=dat[0])
    btn.grid(row=index+1, column=1, pady=0, padx=0)
    # 把按钮添加到列表里
    button_list.append(btn)

之后如果要获取所有按钮的名称,直接遍历这个列表,用cget("text")方法就能拿到每个按钮的text属性(也就是你说的“名称”):

# 遍历列表打印所有按钮名称
for btn in button_list:
    print("当前按钮名称:", btn.cget("text"))

2. 点击按钮时实时获取自身名称

如果是想在用户点击某个按钮的时候,获取这个被点击按钮的名称,那咱们可以给每个按钮绑定点击事件,在回调函数里获取:

# 定义点击事件的回调函数
def on_button_click(event):
    # event.widget就是被点击的那个按钮对象
    clicked_btn_text = event.widget.cget("text")
    print(f"你刚刚点击了按钮:{clicked_btn_text}")

# 修改按钮创建代码,绑定点击事件
button_list = []
for index, dat in enumerate(data2):
    btn = ttk.Button(master, text=dat[0])
    btn.grid(row=index+1, column=1, pady=0, padx=0)
    # 给按钮绑定左键点击事件,触发上面的回调函数
    btn.bind("<Button-1>", on_button_click)
    button_list.append(btn)

这样用户点哪个按钮,就能立刻拿到那个按钮的名称啦~

内容的提问来源于stack exchange,提问作者Suhaiß Abib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:18:58