【问题标题】:Run a process while other process is running python [duplicate]在其他进程正在运行python时运行一个进程[重复]
【发布时间】:2021-04-26 23:48:51
【问题描述】:

我正在使用 tkinter 开发一个 GUI,并将此功能绑定到按钮 b。 单击按钮后,文件将在 notepad++ 中打开,主要问题是我无法对 GUI 执行任何操作(打开记事本时无响应)。关闭 Notepad++ 后,我可以再次单击 GUI 中的按钮。换句话说,这个 open_notepad 的调用并没有结束。即使打开记事本(调用 open_notepad),我也想访问 GUI

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'和'run'被设计成在子进程完成时等待并返回一些东西。

标签: python tkinter subprocess


【解决方案1】:

call 函数会阻塞,直到子进程退出。因此,GUI 事件循环被阻止运行。尝试将其作为后台进程生成。

proc = subprocess.Popen(["notepad++.exe", "-n", line, file])

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 2013-05-03
    • 2010-09-14
    • 2021-05-24
    • 2019-11-07
    • 2015-02-23
    • 2016-06-12
    • 2017-06-10
    相关资源
    最近更新 更多