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

tkinter组合框选择Yes时动态显示文本输入框的实现问题

问题原因
  • 你当前的代码仅在程序初始化阶段执行一次下拉框值的判断,此时用户尚未完成选择操作,条件判断永远无法匹配到Yes选项,因此不会生成对应组件。
  • 直接在判断逻辑内新建组件的写法会导致每次选择Yes都重复生成新组件,产生组件堆叠问题。
修复方案

你需要给Combobox绑定选择事件回调,预先创建好标签和输入框组件默认隐藏,用户选择后实时判断选中值,控制组件的显隐即可。

可运行参考代码

import tkinter as tk
from tkinter import ttk

window = tk.Tk()
window.geometry("700x500")
vlist = ["Yes", "No"]

# 预先创建目标组件,初始状态隐藏
worker_label = tk.Label(window, text="Number of Workers", bg="white", fg="black", font=("Times",13,"bold"))
inputtxt3 = tk.Text(window, height=1, width=25, bg="light yellow")

# 定义下拉框选择触发的回调函数
def on_combo_select(event):
    selected_val = Combo.get()
    if selected_val == "Yes":
        # 选中Yes时显示组件
        worker_label.place(x=155,y=240)
        inputtxt3.place(x=325, y=238)
    else:
        # 选中其他选项时隐藏组件
        worker_label.place_forget()
        inputtxt3.place_forget()

# 创建下拉框,绑定选择事件
Combo = ttk.Combobox(window, values = vlist, state="readonly")
Combo.set("Pick an Option")
Combo.pack()
Combo.bind("<<ComboboxSelected>>", on_combo_select)

window.mainloop()

内容的提问来源于stack exchange,提问作者Rawan Ghanem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:24:00