【问题标题】:I'm using tkinter GUI and winsound but stop function is not working我正在使用 tkinter GUI 和 winsound 但停止功能不起作用
【发布时间】:2021-12-17 13:02:04
【问题描述】:
from tkinter import *
import winsound  
from winsound import PlaySound, SND_FILENAME, SND_LOOP, SND_ASYNC
root = Tk()
root.configure(background='light green')

def playing():
    winsound.PlaySound('alarm', winsound.SND_FILENAME)

def stop_sound():
    PlaySound(None, SND_FILENAME)

Button(root,text="playing",font=("Helvetica 15"),command=playing).pack(pady=20) Button(root,text="Stop",font=("Helvetica 15"),command=stop_sound).pack(pady=20)

root.mainloop()

【问题讨论】:

  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python tkinter-layout


【解决方案1】:

修复更新

在您的 playing 函数中 您可以将winsoud.PlaySoundwinsound.SND_FILENAME 替换为PlaySoundSND_FILENAME

完整的代码如下所示

from tkinter import *
from winsound import PlaySound, SND_FILENAME, SND_LOOP, SND_ASYNC
root = Tk()
root.configure(background='light green')

def playing(): PlaySound('alarm', SND_FILENAME)

def stop_sound(): PlaySound(None, SND_FILENAME)

Button(root,text="playing ",font=("Helvetica 15"),command=playing).pack(pady=20)
Button(root,text="Stop",font=("Helvetica 15"),command=stop_sound).pack(pady=20)

root.mainloop()

说明

这个想法是一样的。该程序不知道 winsound 是什么,因为我们没有导入它。但是我们调用的函数是导入的。所以不需要在它们前面加上winsound.

修复

将此行包含在其他导入中

import winsound

说明

通过查看代码,您没有导入“winsound”模块。您不是通过模块本身来包含它。

注意

在 StackOverflow 上提问时,请分享您的异常/日志消息,以便人们可以轻松地帮助您

【讨论】:

  • 从 winsound 导入 PlaySound、SND_FILENAME、SND_LOOP、SND_ASYNC
  • Tkinter 回调 Traceback 中的异常(最近一次调用最后一次):文件“C:\Users\Radha\anaconda3\lib\tkinter_init_.py”,第 1705 行,在call return self.func(*args) File "", line 7, in play winsound.PlaySound('alarm', winsound.SND_FILENAME) NameError: name ' winsound' 未定义
  • 我导入了 winsound,所以现在播放 () 函数可以工作,但 stop_sound() 函数不工作
猜你喜欢
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多