如何解决将pyttsx3与tkinter一起使用会导致程序停止和关闭,有什么想法吗?
我安装了pyttsx3
库以将文本转换为语音。在我想将其与tkinter
结合使用之前,它的效果非常好。程序关闭后会发生什么,而没有任何错误或如此。很奇怪,它遍历了engine.runAndWait()
之后的代码。我通过在终端显示的每一行之后放置一个打印命令来进行检查,但是我“忽略”了应该在窗口中构建的小部件。有任何想法吗?我正在使用MacOs Mojave 10.14.6。使用Python 3.8.5。
这是有问题的部分代码,您显然可以忽略它们之间的打印命令。我只剩下它了,因此可以看到它遍历了代码,但是只执行了打印命令,而忽略了其余部分。同样,如果没有tkinter
,它也可以正常工作;当我不使用pyttsx3
库时,该程序也可以正常工作。这是完整的代码:https://www.codepile.net/pile/rezzJ7ex及其附带的JSON文件:https://www.codepile.net/pile/ePlYvbZM
else:
random.shuffle(WORDS)
for widget in window.winfo_children():
widget.destroy()
WORD = WORDS[0]
tk.Label (window,image=photo1,bg="black") .grid(row=0,column=0)
word = tk.Label (window,text = WORD,bg="black",fg="white",font="none 20 bold")
word.grid(row=1,column=0)
window.update()
engine = pyttsx3.init()
nl_voice_id = "com.apple.speech.synthesis.voice.ellen"
engine.setProperty('rate',100)
engine.setProperty('voice',nl_voice_id)
engine.say(WORD)
engine.runAndWait()
#del engine <this did not work
print("after runAndWait")
window.after(3000)
print("after after")
word['text'] = ''
print("after text")
window.update()
print("after update")
ANSWER = tk.Entry(window,width=20,bg="white")
print("after entry")
ANSWER.grid(row=2,column=0)
print("after ANSWER")
tk.Button(window,text="Check",width=6,command=lambda: check(ANSWER,WORD)) .grid(row=3,column=0)
print("after button")
WORDS.remove(WORD)
print("after remove")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。