跳至主要內容

BrowserWindow 常用事件、方法

望间代码Electron大约 1 分钟

BrowserWindow 常用事件、方法

BrowserWindow 创建并控制浏览器窗口。

详细的事件和方法请查看 Electron BrowserWindowopen in new window

使用 BrowserWindow,第一步先创建一个实例对象

const { BrowserWindow } = require("electron");

const window = new BrowserWindow({
  width: 800,
  height: 600,
});

优雅地显示窗口

ready-to-show

在加载页面时,渲染进程第一次完成绘制时,如果窗口还没有被显示,渲染进程会发出 ready-to-show 事件。
在此事件后显示窗口将没有视觉闪烁。

const window = new BrowserWindow({ show: false });

window.once("ready-to-show", () => {
  window.show();
});

backgroundColor

设置窗口的背景颜色。
对于一个复杂的应用,ready-to-show 可能发出的太晚,会让应用感觉缓慢,建议立刻显示窗口,并使用接近应用程序背景的 backgroundColor。

const window = new BrowserWindow({ backgroundColor: "#096dd9" });

父子窗口

通过使用 parent 选项,可以创建子窗口,当父窗口关闭时,子窗口也会关闭。

const parent = new BrowserWindow();
const child = new BrowserWindow({ parent: parent });

模态窗口

将子窗口以模态窗口的方式显示

const parent = new BrowserWindow();
const child = new BrowserWindow({ parent: parent, modal: true, show: false });
child.once("ready-to-show", () => {
  child.show();
});

平台相关

  • 在 macOS 上,modal 窗口将显示为附加到父窗口的工作表。
  • 在 macOS 上,子窗口将保持与父窗口的相对位置。而在 Windows 和 Linux 中,当父窗口移动时子窗口不会移动。
  • 在 Linux 上,模态窗口的类型将更改为 dialog。
  • 在 Linux 上,许多桌面环境不支持隐藏模态窗口。

静态方法

不用实例化,直接使用

getAllWindows

获取所有打开的窗口实例
@returns {BrowserWindow[]}

const windows = BrowserWindow.getAllWindows();

实例属性

实例事件

实例方法

上次编辑于:
贡献者: ViewRoom