问题描述
我在更改Electron中的图标时遇到问题。 该代码工作正常,但是当我添加行>时,将生成一个空白程序(不包含任何内容)。 这是代码:
function createWindow(){
const win = new browserWindow({
width: 800,height: 600,webPreferences: {
devTools: false
},icon: "img/icon.png"
});
win.setMenu(null);
win.loadFile('index.html');
win.webContents.openDevTools();
}
解决方法
要更改窗口的图标,请在BrowserWindow
构造函数中传递它,并使用绝对路径进行简化
icon
(NativeImage | String)(可选)-窗口图标。在Windows上,建议使用ICO图标以获得最佳视觉效果,也可以将其保留为未定义状态,以便使用可执行文件的图标。
您将需要使用一些转换器来生成.ico
和.icns
文件。
let icon;
switch (process.platform) {
case 'win32': icon = path.resolve(__dirname,'img','icon.ico'); break;
case 'darwin': icon = path.resolve(__dirname,'icon.icns'); break;
case 'linux': icon = path.resolve(__dirname,'icon.png'); break;
}
const win = new BrowserWindow({
width: 800,height: 600,webPreferences: {
devTools: false
},icon
});
此外,您可以像这样创建NativeImage
:const icon = nativeImage.createFromPath(path.resolve(__dirname,'icon.png'));
但是,您实际上并不需要手动设置图标,电子会默认使用可执行文件的图标。因此,只需将electron-packager
配置为使用适当的图标(在packagerConfig: { icon: img/icon } }
中添加forge.config.js
,然后将icon.png
,icon.icns
和icon.ico
放入img
目录)
是的,但是问题是不存在任何错误。 但是...我刚刚用以下命令做了另一次尝试:electron-package --overwrite --icon = icon.ico 现在可以使用了!!!但问题是:为什么???