Ayanokouji__ 2025-04-22 10:20 采纳率: 16.7%
浏览 6

electron窗口在聚焦的时候终端控制台会报错:PlacementList must be sorted by first 8 bits of display_id,如何解决?

electron窗口在聚焦的时候终端控制台会报错:PlacementList must be sorted by first 8 bits of display_id

img

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-04-22 10:20
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    electron 窗口聚焦时报错 "PlacementList must be sorted by first 8 bits of display_id" 的解决方案是:

    1. 检查 electron 版本是否是最新的,如果不是,可以升级到最新版本。
    2. 检查 electron 配置文件 main.js 中是否有相关的配置项,例如 win.setAlwaysOnTop(true),如果有,可以尝试将其注释或删除。
    3. 检查 electron 窗口的 display 属性是否正确,如果不是,可以尝试使用 electron.screen.getPrimaryDisplay() 获取主显示器的 display_id,然后将其设置到窗口的 display 属性中。
    4. 如果以上方法都不能解决问题,可以尝试使用 electronlog 函数来记录错误信息,例如:
    electron.log.error('PlacementList must be sorted by first 8 bits of display_id');
    

    这可以帮助你了解错误的原因和位置。

    代码示例

    const { app, BrowserWindow } = require('electron');
    
    let win;
    
    app.on('ready', () => {
      win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
          nodeIntegration: true
        }
      });
    
      win.on('focus', () => {
        // 在窗口聚焦时,获取主显示器的 display_id
        electron.screen.getPrimaryDisplay((display) => {
          win.setDisplay(display.id);
        });
      });
    });
    

    在上面的代码中,我们使用 electron.screen.getPrimaryDisplay() 获取主显示器的 display_id,然后将其设置到窗口的 display 属性中,以解决错误。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月22日