提醒的方法一般有两种:
- 提示框
- 声音警告
以下是这些方法的实现
提示框(tkinter.messagebox)
tkinter.messagebox
是python自带的提示框方法,用于弹出提示框提醒用户操作。
为了引入tkinter.messagebox
,我们通常需要输入如下代码:
from tkinter import messagebox
tkinter.messagebox
有三个消息框、五个对话框:
消息框:
tkinter.messagebox.showinfo(title, message, options)
:展示提示框tkinter.messagebox.showwarning(title, message, options)
:展示警告框tkinter.messagebox.showerror(title, message, options)
:展示错误框
示例:
from tkinter import messagebox
messagebox.showinfo("提示", "这是一个提示")
messagebox.showwarning("警告", "这是一个警告")
messagebox.showerror("错误", "这是一个错误")
运行结果:
提示框:
警告框:
错误框:
对话框:
tkinter.messagebox.askquestion(title, message, options)
:询问确认对话框,点击是返回字符串yes
,点击否返回字符串no
tkinter.messagebox.askokcancel(title, message, options)
:确认/取消对话框,点击是返回True,点击取消返回Falsetkinter.messagebox.askyesno(title, message, options)
:是/否对话框,点击是返回True,点击否返回Falsetkinter.messagebox.askretrycancel(title, message, options)
:重试/取消对话框,点击是返回True,点击否返回Falsetkinter.messagebox.askyesnocancel(title, message, options)
:是/否/取消对话框,点击是返回True,点击否返回False,点击取消返回None
案例:
from tkinter import messagebox
quest_answer = messagebox.askquestion("问题", "需不需要吃西瓜?")
ok_answer = messagebox.askokcancel("问题", "你确定?")
yes_answer = messagebox.askyesno("问题", "你喜欢吃西瓜吗?")
retry_answer = messagebox.askretrycancel("问题", "是否重试?")
yes_cancel_answer = messagebox.askyesnocancel("问题", "你喜欢吃西瓜吗?")
print(quest_answer)
print(ok_answer)
print(yes_answer)
print(retry_answer)
print(yes_cancel_answer)
有时我们需要让该提示框自动关闭,我们可以使用如下代码:
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.withdraw() # 隐藏tk窗口
root.after(3000, root.destroy) # 设置过时时间,单位为毫秒,超过3000毫秒后运行root.destroy方法
messagebox.showinfo("提示", "该提示框在3s后自动关闭")
声音警告
python可以调用系统声音并播放,以达到警告作用
Windows
在Windows平台中,使用winsound
可以发出声音
首先是蜂鸣声,下面是使用案例:
import winsound
frequency = 440 # 频率,单位为赫兹
duration = 6*1000 # 持续时间 单位为毫秒
winsound.Beep(frequency, duration)
如果不想用蜂鸣声,我们也可以像手机铃声那样播放文件提示声:
import winsound
winsound.PlaySound('Beep.wav', winsound.SND_FILENAME)
Linux(Ubuntu)
首先是蜂鸣声,可以使用Python的os模块来执行系统命令。在Linux中,可以使用echo命令向系统文件/dev/tty10
(路径可改动)写入ASCII字符来发出蜂鸣声。
import os
print("\a") # 还有这种方法
os.system('echo -e "\\a" > /dev/tty10')
可以使用speech-dispatcher
进行机器朗读,首先在系统上使用apt install
安装该包:
sudo apt install speech-dispatcher
后使用python代码执行spd-say语句
import os
os.system('spd-say "your program has finished"')