如何获取Tkinter Combobox选中值写入Entry文本框并逐次追加内容
问题解决代码
你原有代码的核心问题是Add函数的实现不符合tkinter.Entry的插入规则,也没有处理首次插入和后续追加的格式逻辑,修改后的完整代码如下:
import tkinter as tk from tkinter.ttk import Combobox form = tk.Tk() form.title("Pi Theorem") form.geometry("300x300") x = tk.StringVar() def Add(): selected_val = x.get().strip() # 未选中值时不执行操作 if not selected_val: return current_text = textbox.get() # 首次插入逻辑 if not current_text: textbox.insert(0, f"Selected letter: {selected_val}") # 后续追加逻辑 else: textbox.insert(tk.END, f",{selected_val}") # 按钮 buton = tk.Button(form, text='EKLE', fg='black', command=Add) buton.place(x=200, y=50, height=20) # 输入文本框 textbox = tk.Entry(fg='black', bg='white') textbox.place(width=150, height=20, x=20, y=100) # 下拉框 degiskenler = ['g','Q','p','H','M'] combobox = Combobox(form, values=degiskenler, textvariable=x, height=3) combobox.place(width=150, height=20, x=20, y=50) form.mainloop()
修改点说明
- 修复了
Entry.insert方法的传参错误,第一个参数需传入插入位置:首次插入从起始位置0插入,后续追加从末尾tk.END插入 - 新增了空值校验逻辑,避免无选中值时插入无效空内容
- 新增了格式判断逻辑,首次插入携带前缀
Selected letter:,后续插入仅追加逗号和选中值,完全匹配需求效果 - 移除了无效的
pack()调用,你已经使用place布局,重复调用布局方法会引发逻辑冲突
内容的提问来源于stack exchange,提问作者Promise89
相关产品推荐
相关产品推荐

