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

如何在Python中创建带两个输入框的simpledialog.SimpleDialog?

实现带两个输入框的simpledialog.SimpleDialog

当然可以实现啦!其实simpledialog.SimpleDialog本身是可扩展的——我们只需要继承它,然后自定义界面元素就能实现双输入框的弹窗。下面是完整的实现代码,完全匹配你想要的效果:

import tkinter as tk
from tkinter import simpledialog

class TwoInputDialog(simpledialog.SimpleDialog):
    def body(self, master):
        # 第一个输入行
        tk.Label(master, text="Input 1:").grid(row=0, column=0, padx=5, pady=5, sticky="w")
        self.entry1 = tk.Entry(master)
        self.entry1.grid(row=0, column=1, padx=5, pady=5)
        # 设置示例默认文本
        self.entry1.insert(0, 'text abc')

        # 第二个输入行
        tk.Label(master, text="Input 2:").grid(row=1, column=0, padx=5, pady=5, sticky="w")
        self.entry2 = tk.Entry(master)
        self.entry2.grid(row=1, column=1, padx=5, pady=5)
        # 设置示例默认文本
        self.entry2.insert(0, 'Text fgh')

        # 默认聚焦第一个输入框,提升用户体验
        return self.entry1

    def apply(self):
        # 收集两个输入框的值,打包后存入result
        input1 = self.entry1.get()
        input2 = self.entry2.get()
        self.result = (input1, input2)

# 测试调用示例
if __name__ == "__main__":
    root = tk.Tk()
    root.withdraw()  # 隐藏主窗口,只显示弹窗

    # 弹出双输入框对话框
    dialog = TwoInputDialog(root, title="双输入弹窗")
    if dialog.result is not None:
        input1_val, input2_val = dialog.result
        print(f"输入1的值: {input1_val}")
        print(f"输入2的值: {input2_val}")

代码说明:

  • 我们继承了simpledialog.SimpleDialog,重写了两个核心方法:
    • body():负责创建弹窗的界面元素,这里用grid布局实现了两行输入区域,还可以按需设置默认文本。
    • apply():负责收集用户输入的内容,把两个输入框的值打包成元组存到self.result里,关闭弹窗后就能直接获取结果。
  • 调用时先隐藏主窗口(避免多余窗口干扰),实例化自定义对话框后,通过dialog.result就能拿到用户输入的两个变量值。

这个实现完全符合你想要的样式,运行后就能看到带有两行输入框的弹窗,每行对应一个变量,还能灵活调整布局和默认内容哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:41:00