我正在制作一个应用程序,将文件从一个目录复制到另一个目录。我希望它在过程结束时发出声音。当QSoundEffect在某个函数或类中时,我不知道如何使它产生声音。只有当代码如下所示时,它才会起作用:
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtMultimedia import *
app = QApplication(sys.argv)
win = QMainWindow()
filepath = "C:\Windows\Media\Windows Error.wav"
sound = QSoundEffect()
sound.setSource(QUrl.fromLocalFile(filepath))
sound.play()
win.show()
sys.exit(app.exec_())
当代码看起来像这样时,为什么它不工作?如何使它在函数或类中工作
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtMultimedia import *
def play_sound():
filepath = "C:\Windows\Media\Windows Error.wav"
sound = QSoundEffect()
sound.setSource(QUrl.fromLocalFile(filepath))
sound.play()
app = QApplication(sys.argv)
win = QMainWindow()
play_sound()
win.show()
sys.exit(app.exec_())
问题是“声音”是play_sound函数的局部变量,因此当该方法完成几乎是瞬时的执行时,它将被消除
解决方案是延长生命周期:
Python风格:使用全局变量
Qt样式:设置父项
相关问题 更多 >
编程相关推荐