为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Electron 应用程序的两个窗口上放置主题(暗/亮模式)?

如何在 Electron 应用程序的两个窗口上放置主题(暗/亮模式)?

侃侃尔雅 2021-12-23 10:42:05
大家好,我有一个问题......我在主窗口上创建了一个带有两个窗口(主页和设置)的Electron 应用程序我有一个按钮,我可以在其中更改主题(暗/亮),我使用 css 变量执行此操作和一些 Javascript 脚本(在 html 文件中,类定义了主题)。我的问题是如何在我的设置窗口中应用我的主题?(我需要在两个文件之间建立链接吗?)我尝试了很多方法但没有成功:/我发布了主要代码以帮助您理解我的问题:网址:<html class="theme-dark" id="fortheme">css:.theme-light {  --color-primary: #dedad4;  --color-secondary: #d7d3cb;  --color-border: #c1beb9;  --color-accent1: #d52015;  --color-accent2: #2196f3;  --color-accent3: #4caf50;  --font-color: #070b0b;}.theme-dark {  --color-primary: #21252b;  --color-secondary: #282c34;  --color-border: #3e4146;  --color-accent1: #d52015;  --color-accent2: #2196f3;  --color-accent3: #4caf50;  --font-color: #f8f4f4;}Javascript://Change pictures (picture of the button) and theme$('#light-btn').on({    'click': function () {        image = $("#light-image")        if (image.attr("src") == "Images/Sun.png") {            image.attr("src", "Images/Dark.png")            setTheme('theme-light');            $("img").css({ filter: "invert(100%)" })        } else {            image.attr("src", "Images/Sun.png")            setTheme('theme-dark');            $("img").css({ filter: "invert(0%)" })        }    }});帮助您理解的应用截图:灯光模式:(设置窗口没有应用主题)黑暗模式:
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

处理这个问题的方法可能不止几种。我个人会在main上下文中处理它,以便可以在后续启动时保存和恢复用户首选项。

所以模式将是这样的:

虽然窗口可以直接相互通信,但如果您决定在未来添加更多窗口或其他“主题”,此架构将为您提供更大的灵活性。这需要更多的工作,但让窗口“哑”,控件驻留在main.

. . . 但我也可能做错了。;-)


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 472 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号