und*_*har 11 html javascript npm electron
在 Electron 中创建新的 BrowserWindow 时使用透明参数并将其设置为 true 通常会给窗口一个透明的背景......但在 Linux 上,我的知识并非如此
现在我听说你可以设置一些命令行参数......但这不起作用......它只是显示黑色或白色无论如何......
// Should set the commandLine arguments and work...
const {app} = require('electron')
app.commandLine.appendSwitch('enable-transparent-visuals');
app.commandLine.appendSwitch('disable-gpu');
Run Code Online (Sandbox Code Playgroud)
现在我听说这不是电子的问题,而是硬件的问题......但我只需要确保因此创建这个问题!
我遇到了和你一样的问题,所以我写了:
在实现请求的功能之前,解决方案很简单,只需在启动窗口之前添加延迟即可。
您可以克隆这个 git repo,将延迟设置为 500,通常会出现魔法。
编辑 1:使用此 repo:https : //gitlab.com/doom-fr/electron-transparency-demo
git clone https://gitlab.com/doom-fr/electron-transparency-demo
cd electron-transparency-demo
npm install
npm start
# or npm run startWithTransparentOption
# or npm run startWithAllOptions
Run Code Online (Sandbox Code Playgroud)
对我来说,它与 Debian Jessie 和电子 4.0.5 一起开箱即用,对于npm start
,npm run startWithTransparentOption
但不适用于npm run startWithAllOptions
.
注意:请小心设置至少 500 毫秒以使其有机会工作。之后可以减少延迟但不稳定。这就是为什么需要透明就绪事件的原因。
厄运
在具有不同硬件的不同发行版上,透明度似乎确实存在多个问题。有多种建议的解决方法。您可能无法在所有硬件和发行版上为您的场景提供可接受的透明度。
例子
来自电子文档:
在 Linux 上,用户必须在命令行中输入 --enable-transparent-visuals --disable-gpu 来禁用 GPU 并允许 ARGB 制作透明窗口,这是由上游 bug 引起的,alpha 通道在某些设备上不起作用Linux 上的 NVidia 驱动程序。
https://github.com/electron/electron/blob/master/docs/api/frameless-window.md
归档时间: |
|
查看次数: |
3848 次 |
最近记录: |