Tkinter - 如何在事件发生时添加“铃声”?
Posted
技术标签:
【中文标题】Tkinter - 如何在事件发生时添加“铃声”?【英文标题】:Tkinter - How can I add a "bell sound" when an event accurs? 【发布时间】:2020-05-28 12:06:33 【问题描述】:我有一个关于 Tkinter 铃声的简单问题。当我的进度条完成或使用filedialog.asksaveasfilename()
函数打开消息框窗口时,如何添加其中一个?
【问题讨论】:
这能回答你的问题吗? how-would-i-go-about-playing-an-alarm-sound-in-python 【参考方案1】:您可以使用方法bell()
来触发系统铃声。
这是一个在进度条完成时如何播放的示例。
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
def work():
if progressbar['value'] == 0:
but1['state'] = 'disabled'
if progressbar['value'] >= progressbar['maximum']:
root.bell()
but1['state'] = 'normal'
progressbar['value'] = 0
return
progressbar['value'] += 1
root.after(100, work)
progressbar = ttk.Progressbar(root, length=200, maximum=10, value=0)
progressbar.grid(row=1)
but1 = ttk.Button(root, text='Start', command=work)
but1.grid(row=2)
root.mainloop()
同样,借助这个例子,我希望你也能用消息弹窗来实现它。
Tkinterbell()
是操作系统的默认声音,改变Tkinter应用程序中的铃声可以改变系统默认的提示音。例如,
【讨论】:
乔萨德!你已经很清楚了,非常感谢你用一个例子来回答。您的代码有效,但我刚刚意识到,如果您通过 CLI 启动脚本,您将无法播放铃声。例如,在我的代码中,要播放铃声,我必须将脚本的扩展名从“.py”更改为“.pyw”(我的操作系统是 Windows 10 Enterprise x64”)。 现在我还有一个问题,如何选择不同种类的铃铛?默认铃声与我的范围不匹配 @TurboC:我通过带有和不带有.pyw
扩展名的命令行运行了代码,它可以正常工作**尽管我使用的是macOS **。 Tkinter 铃声响起默认的系统警报声音,如果您更改系统警报声音,它也会在 Tkinter 应用程序中发生变化。就像我在 Mac 上所说的那样,我可以确认更改系统默认声音确实会改变 Tkinter 应用程序中的哔声。
mm,我明白了,可能在 Windows 中 Tkinter 有不同的行为。但是,无论如何,这意味着如果我想改变“bell()”中发出的声音,Tkinter 会让我改变操作系统中的系统声音?难道没有更简单的方法来改变“铃声”吗?也许在不触及系统设置的情况下从“bell()”函数中选择一个不同的函数?
ciao Saad,很抱歉迟到了,但我仍在测试我的代码。是的,你的回答很好,但最后,正如你建议我的那样,我选择使用 winsound。这更简单,因为我可以选择我想要的所有系统声音(Windows 中的所有声音都放在“C:\Windows\Media”中)。但是使用这个模块意味着受系统的依赖,但是..我会在完成它时解决这个问题。感谢您的支持;)以上是关于Tkinter - 如何在事件发生时添加“铃声”?的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何对 contenteditable div 进行双向绑定,以便我们可以在 onclick 事件发生时访问内容并进行更改?