【问题标题】:How to convert the terminal output and input into an electron app gui如何将终端输出和输入转换为电子应用 gui
【发布时间】:2021-04-24 03:00:03
【问题描述】:

这是我的代码:

import subprocess

subprocess.call("ssh santiago@192.168.56.101", shell=True)

我正在构建一个 electronjs 应用程序,我想将 python 与它一起使用,因为我更熟悉它。我想要一个页面,该页面具有显示在程序窗口上的交互式终端。我在 python 中创建了一个脚本,它允许您在终端控制台中执行此操作,但是我如何将此代码与电子一起使用来制作一个友好的 gui 终端,您可以像其他任何人一样使用它。

【问题讨论】:

    标签: javascript python html node.js electron


    【解决方案1】:

    您需要spawn python 应用程序作为子进程。根据您的BrowserWindow 配置,您可能可以直接从渲染器进程执行此操作(使用nodeIntegrationelectron.remote,通常不鼓励使用两者),或者您可能必须使用IPC 和/或ContextBridge 才能通过来自和来自于BrowserWindow 的衍生应用程序的消息。

    您可以像这样生成 python 应用程序:

    const spawn = require("child_process").spawn;
    const pythonApp = spawn('python', ['path/to/app.py', arg1, arg2, ...]);
    
    pythonApp.stdout.on('data', (data) => {
      // stdout from the python app
    });
    
    // stdin to the python app
    pythonApp.stdin.write('...')
    

    如果您愿意使用nodeIntegration,那么基本上就是这样,否则您将需要ipcMainipcRenderer 以及可选的,以提高安全性,ContextBridge

    【讨论】:

    • 感谢您的回答,在电子中页面是使用html显示的。我该怎么做呢?
    • 纯 HTML 是静态的,您需要 JavaScript 使其具有交互性。您需要使用 JavaScript 从 python 进程接收消息并将它们显示在网页上,方法是添加新的 HTML 元素或编辑现有的元素。如何做到这一点是一个非常广泛的问题。您最好的选择可能是研究基本的前端开发课程或教程。
    • 你有不和谐吗?加我聊天会更方便:username.s.v #7273
    猜你喜欢
    • 2020-06-13
    • 2015-02-19
    • 2014-12-21
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多