gpt4 book ai didi

electron - 如何恢复 Electron 应用程序中的默认窗口大小?

转载 作者:行者123 更新时间:2023-12-03 06:30:38 24 4
gpt4 key购买 nike

有没有办法将 Electron 应用程序中的主窗口恢复到一定的大小?为了解释我想要实现的目标,让我举个例子:

当我打开 Windows 资源管理器时,它会以特定大小并在特定位置打开。然后我最大化该窗口并关闭资源管理器。下次当我重新启动资源管理器时,它会以与关闭它时相同的状态打开,即处于最大化状态。但是,当我单击恢复按钮时,资源管理器将恢复到最大化之前的宽度/高度和位置。

我也想在我的 Electron 应用程序中完成同样的任务。然而这并没有发生。

我正在做的是,当我的应用程序关闭时,我使用 (win.getBounds()) 捕获应用程序窗口的尺寸(宽度、高度)和位置(x、y 坐标)和使用 Electron-config 将它们保存在配置文件中。这就是我的代码的样子:

  const Config = require('electron-config')
const config = new Config();

mainWindow.on('close', () => {
config.set('winBounds', mainWindow.getBounds())
});

现在,当我启动应用程序时,我从配置文件中读取设置(实际上 Electron 配置为我做这件事)并使用它来设置窗口的初始尺寸/位置。我正在使用如下代码:

  let opts = {
show: false,
icon: path.join(__dirname, 'app-window-icon.png')
};
Object.assign(opts, config.get('winBounds'));
mainWindow = new BrowserWindow(opts);

这也很有效。然而,我现在唯一的选择是最大化窗口。我无法找到任何选项将窗口恢复到最大化之前的大小。

例如,假设用户启动尺寸为 1024x768 像素的应用程序。然后,用户最大化应用程序窗口,然后将其关闭。当用户重新启动应用程序时,它会以关闭时的大小打开,我看到的唯一选项是最大化窗口。我正在寻找的是将窗口大小恢复为 1024x768px 的选项。

我在这里查找了文档:https://github.com/electron/electron/blob/master/docs/api/browser-window.md但不幸的是在那里找不到任何东西。

最佳答案

我使用了solution here这涉及到在 Electron 设置 中保留您的窗口大小和位置,并且它可以完美地工作。

在您的代码中包含 windowStateKeeper 函数,然后调整您的 createMainWindow 函数,如下所示:

function createMainWindow() {
const mainWindowStateKeeper = windowStateKeeper('main');
const win = new electron.BrowserWindow({
title: 'main',
x: mainWindowStateKeeper.x,
y: mainWindowStateKeeper.y,
width: mainWindowStateKeeper.width,
height: mainWindowStateKeeper.height
});
mainWindowStateKeeper.track(win);

win.loadURL(`file://${__dirname}/index.html`);
win.on('closed', onClosed);

return win;
}

关于electron - 如何恢复 Electron 应用程序中的默认窗口大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com