我刚刚开始使用声卡 python 模块的基本功能。但是,我无法让我的 tkinter 窗口首先显示,然后等到按下运行按钮来执行“def run()”代码。它总是先执行“def run()”代码,然后打开窗口。我究竟做错了什么?from tkinter import *import soundcard as scwindow = Tk()window.geometry("500x500")window.title("Virtual Soundcard")default_speaker = sc.default_speaker()default_mic = sc.default_microphone()def run(): with default_mic.recorder(samplerate=44100) as mic, \ default_speaker.player(samplerate=44100) as sp: for val in range(100): data = mic.record(numframes=None) sp.play(data)RunButton = Button(window, text ="Run", command = run())RunButton.pack()RunButton.place(x = 100, y = 250)window.mainloop()
1 回答
![?](http://img1.sycdn.imooc.com/545868190001d52602200220-100-100.jpg)
当年话下
TA贡献1890条经验 获得超9个赞
更改RunButton = Button(window, text ="Run", command = run())
为
RunButton = Button(window, text ="Run", command = run)
基本上删除()
命令参数,()
甚至在按下按钮之前(即在代码执行时)调用该函数。
希望这能解决这个错误。如有任何疑问或错误,请告诉我。
干杯
添加回答
举报
0/150
提交
取消