python程序提醒/警告实现方法总结

提醒的方法一般有两种:

  1. 提示框
  2. 声音警告

以下是这些方法的实现

提示框(tkinter.messagebox)

tkinter.messagebox是python自带的提示框方法,用于弹出提示框提醒用户操作。

为了引入tkinter.messagebox,我们通常需要输入如下代码:

from tkinter import messagebox

tkinter.messagebox有三个消息框、五个对话框:

消息框:

  1. tkinter.messagebox.showinfo(title, message, options):展示提示框
  2. tkinter.messagebox.showwarning(title, message, options):展示警告框
  3. tkinter.messagebox.showerror(title, message, options):展示错误框

示例:

from tkinter import messagebox

messagebox.showinfo("提示", "这是一个提示")
messagebox.showwarning("警告", "这是一个警告")
messagebox.showerror("错误", "这是一个错误")

运行结果:

提示框:
提示框
警告框:

警告框
错误框:

错误框

对话框:

  1. tkinter.messagebox.askquestion(title, message, options):询问确认对话框,点击是返回字符串yes,点击否返回字符串no
  2. tkinter.messagebox.askokcancel(title, message, options):确认/取消对话框,点击是返回True,点击取消返回False
  3. tkinter.messagebox.askyesno(title, message, options):是/否对话框,点击是返回True,点击否返回False
  4. tkinter.messagebox.askretrycancel(title, message, options):重试/取消对话框,点击是返回True,点击否返回False
  5. tkinter.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"')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值