Python 3.6中如何获取并保存Tkinter MessageBox的Yes/No选择结果
嘿,我之前在Python 3.6里刚好解决过这个问题!要获取Yes/No MessageBox的选择结果,其实有两种实用的方法,看你的需求来选:
方法1:用内置的tkinter库(跨平台首选)
tkinter是Python自带的GUI库,完全不需要额外安装,代码简洁还能跨Windows、Mac、Linux使用:
import tkinter as tk from tkinter import messagebox # 创建主窗口并隐藏(我们只需要弹窗) root = tk.Tk() root.withdraw() # 弹出Yes/No对话框,返回布尔值:True=Yes,False=No dialog_result = messagebox.askyesno("确认操作", "你确定要继续吗?") # 转换为你需要的'Yes'或'No'字符串 user_choice = 'Yes' if dialog_result else 'No' # 这里可以把结果保存起来或者做后续处理 print(f"用户选择了:{user_choice}")
askyesno方法直接返回布尔值,简单的条件判断就能转成你要的字符串格式,非常省心。
方法2:用pywin32库(Windows原生风格)
如果你的程序只在Windows上运行,用pywin32调用系统原生的MessageBox会更贴合系统风格。首先需要安装这个库:
pip install pywin32
然后用下面的代码实现:
import win32api # 弹出原生Yes/No对话框,参数4代表显示Yes和No按钮 # 返回值6对应Yes,7对应No dialog_result = win32api.MessageBox(0, "你确定要执行这个操作吗?", "提示", 4) # 转换为目标字符串 user_choice = 'Yes' if dialog_result == 6 else 'No' print(f"用户选择了:{user_choice}")
这个方法的弹窗是Windows系统自带的样式,适合追求原生体验的场景。
内容的提问来源于stack exchange,提问作者Shimon Pokrivka
相关产品推荐
相关产品推荐

