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

如何获取Customtkinter按钮旁CTkEntry组件的文本内容?

解决点击按钮获取旁边Entry文本的问题

要实现点击按钮时打印相邻Entry的内容,核心是让按钮的点击事件关联到对应的Entry组件。你可以按以下方式修改代码:

修改后的完整代码

import customtkinter

root = customtkinter.CTk()
scrollable_frame = customtkinter.CTkScrollableFrame(root, width=400, height=300)
scrollable_frame.pack(pady=20, padx=20, fill="both", expand=True)

header = [(0, "Phone Number"), (1, "Status")]

#--------CREATE TREEVIEW HEADER-------#
for x,y in header:
    entry = customtkinter.CTkEntry(scrollable_frame,justify='center')
    entry.insert(0,y)
    entry.configure(state='readonly')
    if y.lower() == 'phone number':
        entry.grid(row=0,column=x,ipadx=80,pady=5)
    else:
        entry.grid(row=0,column=x,pady=5)

#--------CREATE ENTRYBOXES UNDER "PHONE NUMBER" & BUTTONS UNDER "STATUS"---------#
entries = []  # 存储所有Entry组件,方便按钮关联
for x in range(16):
    entry=customtkinter.CTkEntry(scrollable_frame,justify='center')
    entry.insert(0, x)
    entry.configure(state='readonly')
    entry.grid(row=x+3, column=0, ipadx=80,pady=0)
    entries.append(entry)

def get_number(target_entry):
    # 获取并打印对应Entry的文本内容
    print(target_entry.get())

for x in range(16):
    # 通过lambda给按钮绑定对应行的Entry
    button=customtkinter.CTkButton(scrollable_frame,text='Click Me',command=lambda e=entries[x]: get_number(e))
    button.grid(row=x+3, column=1,pady=0)

if __name__ == '__main__':
    root.mainloop()

关键说明

  • 新增entries列表保存每个生成的Entry,确保按钮能精准找到对应行的输入框
  • 使用lambda e=entries[x]: get_number(e)绑定参数,避免循环结束后所有按钮都关联到最后一个Entry的问题
  • get_number函数接收目标Entry,调用entry.get()即可获取输入框内的文本

内容的提问来源于stack exchange,提问作者Wayne Gan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:10:26