运行 一个进程,而其他进程是 运行 python
Run a process while other process is running python
我正在用 tkinter 开发一个 GUI,我把这个函数绑定到一个按钮 b。
单击按钮后,文件将在 notepad++ 中打开,主要问题是我无法使用 GUI 执行任何操作(打开记事本时无响应)。关闭 Notepad++ 后,我可以再次单击 GUI 中的按钮。也就是说,这个open_notepad的调用并没有结束。即使打开记事本,我也想访问 GUI(调用 open_notepad)
def open_notepad(file,line):
subprocess.call([
r"C:\Program Files\Notepad++\notepad++.exe",
"-n",line,file
])
print(line)
notepad_button = Button(root, text="open notepad")
notepad_button.bind("<Button-1>", lambda event: open_notepad(file_init, line))notepad.pack()
call
函数阻塞,直到子进程退出。因此,GUI 事件循环被阻止运行。尝试将其作为后台进程生成。
proc = subprocess.Popen(["notepad++.exe", "-n", line, file])
我正在用 tkinter 开发一个 GUI,我把这个函数绑定到一个按钮 b。 单击按钮后,文件将在 notepad++ 中打开,主要问题是我无法使用 GUI 执行任何操作(打开记事本时无响应)。关闭 Notepad++ 后,我可以再次单击 GUI 中的按钮。也就是说,这个open_notepad的调用并没有结束。即使打开记事本,我也想访问 GUI(调用 open_notepad)
def open_notepad(file,line):
subprocess.call([
r"C:\Program Files\Notepad++\notepad++.exe",
"-n",line,file
])
print(line)
notepad_button = Button(root, text="open notepad")
notepad_button.bind("<Button-1>", lambda event: open_notepad(file_init, line))notepad.pack()
call
函数阻塞,直到子进程退出。因此,GUI 事件循环被阻止运行。尝试将其作为后台进程生成。
proc = subprocess.Popen(["notepad++.exe", "-n", line, file])