You need to enable JavaScript to run this app. 如何在Python3中实现同时带输入框和YES/NO按钮的单个tkinter弹窗?
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python3中实现同时带输入框和YES/NO按钮的单个tkinter弹窗?

完全可以实现,你只需要自定义一个Toplevel弹窗,将文本输入框和YES/NO按钮整合在同一个窗口内即可,不需要调用两个独立的内置弹窗组件。

以下是可直接运行的实现代码:

import tkinter as tk
from tkinter import ttk

def custom_prompt():
    # 初始化主窗口并隐藏,避免多余窗口显示
    root = tk.Tk()
    root.withdraw()

    # 创建自定义弹窗
    popup = tk.Toplevel(root)
    popup.title("综合确认窗口")
    # 窗口大小可根据需求调整
    popup.geometry("400x220")
    # 设置为模态窗口,操作完成前无法点击其他窗口
    popup.grab_set()

    # 提示文字
    tip_label = ttk.Label(popup, text="请输入内容并选择确认选项:", font=("微软雅黑", 10))
    tip_label.pack(pady=10, anchor="w", padx=15)

    # 3行高度的文本输入框,刚好支持输入三句文本
    input_text = tk.Text(popup, height=3, font=("微软雅黑", 10), wrap=tk.WORD)
    input_text.pack(pady=5, padx=15, fill=tk.X)

    # 存储返回结果的变量
    result = {"confirm": None, "input_content": ""}

    def on_yes():
        result["confirm"] = True
        # 获取输入框所有内容,去掉末尾自动添加的换行符
        result["input_content"] = input_text.get("1.0", tk.END).strip()
        popup.destroy()
        root.quit()

    def on_no():
        result["confirm"] = False
        result["input_content"] = input_text.get("1.0", tk.END).strip()
        popup.destroy()
        root.quit()

    # 按钮区域
    btn_frame = ttk.Frame(popup)
    btn_frame.pack(pady=15, fill=tk.X, padx=15)
    yes_btn = ttk.Button(btn_frame, text="YES", command=on_yes, width=10)
    yes_btn.pack(side="left", padx=20)
    no_btn = ttk.Button(btn_frame, text="NO", command=on_no, width=10)
    no_btn.pack(side="right", padx=20)

    # 等待弹窗关闭
    root.mainloop()
    return result

# 调用示例
res = custom_prompt()
print("是否选择YES:", res["confirm"])
print("输入的内容:", res["input_content"])

上述代码特性:

  • 输入框默认高度为3行,支持多段文本输入,自带自动换行适配
  • 点击任意按钮都会同时返回用户的选择结果(YES对应True/NO对应False)和输入的文本内容
  • 弹窗为模态设计,和原生系统弹窗交互逻辑一致,不会出现误点底层窗口的问题

你原有代码的几个明显错误:

  • 未导入tkinter.messagebox模块就直接调用askyesno方法
  • 主窗口初始化tk.Tk()写在了弹窗调用逻辑之后,执行顺序错误,且拼写错误,正确写法为tk.Tk()(K为小写)
  • 变量名前后不统一,前面定义的变量是my_var,后续打印写的是myvar,会报未定义错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 18:06:03