如何通过Tkinter的ComboBox动态修改Label组件的文本内容
解决Tkinter中ComboBox选中项同步更新Label文本的问题
你的Label无法更新不是因为它是静态组件——Label完全支持动态修改文本,问题出在你的modified函数里:你用的m是程序初始化时计算的固定值,没有在每次选中新选项时重新计算对应数据的最大值。
只需要修改modified函数,在内部重新获取当前选中的选项,计算最新的最大值,再更新Label即可:
def modified(e=None): # 获取当前ComboBox选中的选项 selected_item = cbox.get() # 重新计算对应列的最大值 new_m = np.around(max(df[selected_item]), 3) # 更新Label的文本 maxx.configure(text=("Max", new_m)) print(selected_item) cbox = ttk.Combobox(frame_left, justify=CENTER, state='readonly') cbox['values'] = ( 'Steps count', 'Temp avg', 'Movement intensity' ) cbox.grid(column=0, row=6, columnspan=1, pady=1, sticky="EW") cbox.current(0) cbox.bind('<<ComboboxSelected>>', modified) # 初始化时计算初始值 initial_m = np.around(max(df[cbox.get()]), 3) maxx = Label(frame_left, text=("Max", initial_m)) maxx.grid(row=7, column=0, padx=0, pady=5, sticky="EW")
关键改动说明:
- 在
modified函数内实时获取当前选中的选项,重新计算最大值 - 使用新计算的
new_m更新Label文本,而不是初始化时的旧m
内容的提问来源于stack exchange,提问作者Devin Bowen
相关产品推荐
相关产品推荐

