Rya*_*uck 5 python desktop-application node-webkit nw.js
我有一个基于Python的应用程序来控制LED.它用于Flask创建一个Web服务器,因此我可以使用HTML,CSS和JS来处理一个很好的UI.
我目前的流程:
python home.pylocalhost:5000浏览器我想进一步将它打包成一个nw.js(以前的node-webkit)应用程序.
基本上,我相信我只需要在窗口加载之前执行我的python脚本,这样我可靠的烧瓶Web服务器就会启动并创建一个localhost:5000页面供我的nw.js应用程序界面打开.
如何打包我的nw.js应用程序,以便它在启动时运行python脚本?
小智 4
您可以创建加载页面并在 Web 服务器启动后呈现实际的应用程序。
包.json:
{
"name": "pythonApp",
"version": "0.0.0",
"main": "loading.html",
"window": {
"title": "App Name",
"width": 800,
"height": 600,
"position": "center",
}
}Run Code Online (Sandbox Code Playgroud)
加载页面 (loading.html) 将加载一个 js 文件,该文件将您的实际应用程序页面作为隐藏窗口启动,然后您可以在服务器运行时显示它。
加载.html:
var gui = require('nw.gui');
var currentWindow = gui.Window.get(); // Get reference to loading.html
var exec = require('child_process').execFile;
exec('home.py', {cwd:'.'}, function (error, stdout, stderr){ // Runs your python code
var appWindow = gui.Window.open('app.html', // Starts your application
{ width: 800,
height: 600,
position: 'center',
focus: false,
transparent: true // This hides the application window
}
);
appWindow.on('loaded', function() { // Waits for application to be loaded
currentWindow.close({force: 'true'}); // Closes loading.html
appWindow.show(); // Shows app.html
appWindow.focus(); // Set the focus on app.html
});
});Run Code Online (Sandbox Code Playgroud)
无论如何,这就是它的要点,但您可能需要针对您的特定设置进行更改。希望能帮助到你。