跳到正文

窗口与原生服务

在 app.whenReady() 之后创建窗口。每个窗口有自己的界面根。

#窗口生命周期

new Window({
  title: "My App",
  width: 720,
  height: 480,
  renderer: createRenderer(App),
});

onClose 和 on("closed", ...) 在窗口消失后运行。onCloseRequested 可以阻止关闭,以便询问用户是否保存。whenReady() 在原生窗口存在后兑现,包括隐藏窗口。

用 app.on("reopen", ...) 处理 Dock 图标,并在 hasVisibleWindows 为 false 时打开窗口。

#命令与服务

import { app, Clipboard, Dialog, Menu, Shell, Screen } from "@quickgui/native";

await app.whenReady();
const displays = await Screen.getAllDisplays();
const selected = await Dialog.showOpenDialog({ properties: ["openDirectory"] });

有返回值的调用是 Promise。菜单、文件对话框、剪贴板、外观、通知和托盘图标可从 @quickgui/native 使用。见托盘图标。

#事件与文件监听

窗口事件包括焦点、调整大小、外观、最小化、全屏和关闭。应用事件包括就绪、重新打开、激活、退出和打开 URL。项目文件请使用 Bun 的文件监听;属于窗口的监听器请在 onCleanup 中停止。