电子中的图标

问题描述

我在更改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
});

此外,您可以像这样创建NativeImageconst icon = nativeImage.createFromPath(path.resolve(__dirname,'icon.png'));

但是,您实际上并不需要手动设置图标,电子会默认使用可执行文件的图标。因此,只需将electron-packager配置为使用适当的图标(在packagerConfig: { icon: img/icon } }中添加forge.config.js,然后将icon.pngicon.icnsicon.ico放入img目录)

,

是的,但是问题是不存在任何错误。 但是...我刚刚用以下命令做了另一次尝试:electron-package --overwrite --icon = icon.ico 现在可以使用了!!!但问题是:为什么???