如何获取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
相关产品推荐
相关产品推荐

