【问题标题】:How can I update an electron BrowserWindow icon after the window is already opened?窗口已经打开后,如何更新电子 BrowserWindow 图标?
【发布时间】:2016-06-27 12:25:54
【问题描述】:

通过electron api,我可以在调用BrowserWindow构造函数时设置窗口的图标,如下:

  mainWindow = new BrowserWindow({
    icon: __dirname + '/electric-glowing-bear.png');

不幸的是,事后我还没有弄清楚如何更新图标。似乎有一种方法可以更新 Mac OS X 上的停靠图标,但是,我正在运行 Linux。

这样做的目的是让我可以用数字“标记”图标以指示未读消息正在等待。

到目前为止,我发现的唯一解决方法是使用托盘图标,但是,我更愿意在停靠栏/任务栏中显示未读计数。

【问题讨论】:

    标签: electron


    【解决方案1】:

    你可以在创建窗口时设置 BrowserWindow 图标。

    const {BrowserWindow} = require('electron')
    let mainWindow = new BrowserWindow({icon: icon})
    

    您可以像这样随时更改 BrowserWindow 图标。

    mainWindow.setIcon(changeicon);
    

    您可以像这样随时为任务栏图标叠加编号。

    mainWindow.setOverlayIcon(overlayicon, description)
    

    Windows 覆盖 NativeImage - 显示在任务栏图标右下角的图标。如果此参数为空,则清除覆盖 description String - 将提供给辅助功能屏幕阅读器的描述 在当前任务栏图标上设置一个 16 x 16 像素的叠加层,通常用于传达某种应用程序状态或被动通知用户。

    【讨论】:

    • setOverlayIcon 在 linux 上不起作用。 mainWindow.setIcon 也没有。也许自从我以前尝试过之后就已经修复了?我会再次测试以找出答案。
    【解决方案2】:

    只要您有适当的文件,这应该可以工作

    const os = require('os'); // top of file
    switch (os.platform()) {
        case 'darwin':
            mainWindow.setIcon('src/app/assets/icons/icon.icns');
            break;
        case 'win32':
            mainWindow.setIcon('src/app/assets/icons/icon.ico');
            break;
        default:
            mainWindow.setIcon('src/app/assets/icons/icon.png');
            break;
    }
    

    【讨论】:

      【解决方案3】:

      不幸的是,目前这似乎不可能,至少在 Linux 上是不可能的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-05
        • 1970-01-01
        • 2021-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多