📜  tkinter 输入弹出窗口 - Python (1)

📅  最后修改于: 2023-12-03 15:35:20.870000             🧑  作者: Mango

tkinter 输入弹出窗口 - Python

简介

Tkinter 是 Python 内置的图形界面开发库,可用于开发 Windows、Linux 和 Mac OS 平台下的应用程序。弹出窗口是 Tkinter 应用程序中常用的功能之一,可以通过使用 tkinter.messagebox 或者 tkinter.simpledialog 模块来实现。

tkinter.messagebox

tkinter.messagebox 模块提供了基本的弹出窗口,例如用于显示消息、警告、错误和询问的窗口。

常用方法

showinfo(title=None, message=None, **options)

创建一个消息窗口,用于显示一般的消息、警告和错误信息。

参数:

  1. title:对话框标题,默认为“Message”。
  2. message:对话框主要消息,默认为“”。
  3. **options:其他选项,如"parent"用于指定消息框的父窗口。

showwarning(title=None, message=None, **options)

创建一个警告窗口,用于显示重要的警告信息。

参数:

  1. title:对话框标题,默认为“warning”。
  2. message:对话框主要消息,默认为“”。
  3. **options:其他选项,如"parent"用于指定消息框的父窗口。

showerror(title=None, message=None, **options)

创建一个错误窗口,用于显示严重的错误信息。

参数:

  1. title:对话框标题,默认为“Error”。
  2. message:对话框主要消息,默认为“”。
  3. **options:其他选项,如"parent"用于指定消息框的父窗口。

askquestion(title=None, message=None, **options)

创建一个询问窗口,用于显示一个基本的二选一询问信息。

参数:

  1. title:对话框标题,默认为“Question”。
  2. message:对话框主要消息,默认为“”。
  3. **options:其他选项,如"parent"用于指定消息框的父窗口。

askokcancel(title=None, message=None, **options)

创建一个询问窗口,用于询问用户是否确认一个特定的操作。

参数:

  1. title:对话框标题,默认为“Question”。
  2. message:对话框主要消息,默认为“”。
  3. **options:其他选项,如"parent"用于指定消息框的父窗口。

askyesno(title=None, message=None, **options)

创建一个询问窗口,用于询问用户是否同意或不同意一个特定的操作。

参数:

  1. title:对话框标题,默认为“Question”。
  2. message:对话框主要消息,默认为“”。
  3. **options:其他选项,如"parent"用于指定消息框的父窗口。
tkinter.simpledialog

tkinter.simpledialog 模块提供了创建输入对话框的功能。

常用方法

askfloat(title=None, prompt=None, **kw)

创建一个对话框要求用户输入一个浮点数。

参数:

  1. title:对话框标题。
  2. prompt:文本字符串,描述对话框所需的输入。
  3. **kw:其他选项,如"default"指定输入对话框中默认显示的值。

askinteger(title=None, prompt=None, **kw)

创建一个对话框要求用户输入一个整数。

参数:

  1. title:对话框标题。
  2. prompt:文本字符串,描述对话框所需的输入。
  3. **kw:其他选项,如"default"指定输入对话框中默认显示的值。

askstring(title=None, prompt=None, **kw)

创建一个对话框要求用户输入一个字符串。

参数:

  1. title:对话框标题。
  2. prompt:文本字符串,描述对话框所需的输入。
  3. **kw:其他选项,如"default"指定输入对话框中默认显示的值。
示例代码
import tkinter as tk
from tkinter import messagebox, simpledialog

# messagebox 示例
def showInfo():
    messagebox.showinfo("Info", "This is an Information message")

def showWarning():
    messagebox.showwarning("Warning", "This is a Warning message")

def showError():
    messagebox.showerror("Error", "This is an Error message")

def askQuestion():
    result = messagebox.askquestion("Question", "Are you sure you want to quit?")
    print(result)

def askOkCancel():
    result = messagebox.askokcancel("Question", "Are you sure you want to quit?")
    print(result)

def askYesNo():
    result = messagebox.askyesno("Question", "Are you sure you want to quit?")
    print(result)

# simpledialog 示例
def showFloatInputDialog():
    result = simpledialog.askfloat("Input", "Enter a float value: ", minvalue=0.0, maxvalue=100.0, initialvalue=50.0)
    print(result)

def showIntegerInputDialog():
    result = simpledialog.askinteger("Input", "Enter an integer value: ", minvalue=0, maxvalue=100, initialvalue=50)
    print(result)

def showStringInputDialog():
    result = simpledialog.askstring("Input", "Enter your name: ", initialvalue="John Doe")
    print(result)

# 创建主窗口
root = tk.Tk()

# 添加按钮
info_btn = tk.Button(root, text="Show Info", command=showInfo)
warning_btn = tk.Button(root, text="Show Warning", command=showWarning)
error_btn = tk.Button(root, text="Show Error", command=showError)
question_btn = tk.Button(root, text="Ask Question", command=askQuestion)
ok_cancel_btn = tk.Button(root, text="Ask Ok Cancel", command=askOkCancel)
yes_no_btn = tk.Button(root, text="Ask Yes No", command=askYesNo)
float_btn = tk.Button(root, text="Ask Float", command=showFloatInputDialog)
integer_btn = tk.Button(root, text="Ask Integer", command=showIntegerInputDialog)
string_btn = tk.Button(root, text="Ask String", command=showStringInputDialog)

# 显示按钮
info_btn.pack(side=tk.LEFT)
warning_btn.pack(side=tk.LEFT)
error_btn.pack(side=tk.LEFT)
question_btn.pack(side=tk.LEFT)
ok_cancel_btn.pack(side=tk.LEFT)
yes_no_btn.pack(side=tk.LEFT)
float_btn.pack(side=tk.LEFT)
integer_btn.pack(side=tk.LEFT)
string_btn.pack(side=tk.LEFT)

# 进入消息循环
root.mainloop()
结论

本文介绍了使用 Tkinter 实现弹出窗口功能的方法,包括基本的弹出窗口和输入对话框。通过本文的学习,你可以使用 Tkinter 实现各种弹出窗口,在你的应用程序中增加用户友好的界面。