方案
我有一个窗口,它有一个add task button
打开一个窗口。每次用户点击它,它都会打开一个窗口。我在add task window
上有一个按钮,可以最小化它。如何实现这个最小化按钮?
代码
我可以使用以下代码close
maximize
窗口:
var winclose = function () {
window.close();
}
var winmaximize = function () {
window.moveTo(0, 0);
window.resizeTo(screen.width, screen.height);
}
但是,我无法找到任何可以最小化渲染过程窗口的函数。
请帮助,非常感谢;
注意:
浏览器不提供开发人员最小化它们的功能。但在这里 是一个不同的场景。我在这里使用的是Electronjs提供的铬。因此,在我们开发桌面应用程序时必须有一种方法
虚拟下载链接:download from OneDrive
答案 0 :(得分:17)
您可以在相应的BrowserWindow
实例上致电minimize()
。问题是如何最好地访问此实例,而这又取决于您打开窗口的方式以及最小化按钮的位置。从您的示例中,我认为最小化按钮实际上位于您要关闭的窗口中,在这种情况下,您可以最小化聚焦窗口,因为当用户单击其中的按钮时,窗口当前应该具有焦点:
const { remote } = require('electron')
remote.BrowserWindow.getFocusedWindow().minimize();
或者,如果您想要从其他窗口最小化任务窗口,则可以使用BrowserWindow.fromId()
来访问相关窗口。
答案 1 :(得分:6)
旧线程,但应该注意的是,远程模块被视为安全问题,不鼓励使用(参见here)。 它也在电子 12 中按原样被弃用(参见 here)。
相反,您可以通过 IPC 发送命令来调用最小化。
来自渲染器:
ipcRenderer.send('minimize')
主要内容:
ipcMain.on('minimize', () => {
win.minimize()
// or depending you could do: win.hide()
})
您也可以只进行切换(在主界面中):
ipcMain.on('minimize', () => {
win.isMinimized() ? win.restore() : win.minimize()
// or alternatively: win.isVisible() ? win.hide() : win.show()
})
对于动态制作的窗口(如其他答案中所述,并且似乎是用例),您可以使用(代替“win”):
BrowserWindow.getFocusedWindow()
如果您有多个窗口(这就是重点),这会产生切换问题,但您可以使用 BrowserWindow.getAllWindows()
并迭代,如果您想从当前渲染器进程外部恢复特定窗口(例如ID)。不知道您为什么要这样做,但为了完整起见,我将其包括在内。
答案 2 :(得分:4)
如果您偶然发现此线程并使用电子vue,您可以直接在渲染器内使用this.$electron.remote.BrowserWindow.getFocusedWindow().minimize();
。
答案 3 :(得分:1)
这对我有用:
const { remote } = require('electron')
remote.getCurrentWindow().minimize();
答案 4 :(得分:0)
最小化渲染器的屏幕非常简单。使用远程对象,我们可以最小化渲染器的屏幕。假设您有一个按钮,当单击它时会触发屏幕最小化。波纹管就是这样做的功能。
const handleMinimise =()=>{
remote.BrowserWindow.getFocusedWindow().minimize();
}
但是首先,您必须遵循以下要求远离电子
const electron = require("electron")
const remote = electron.remote
或如下
const { remote } = require("electron")