FIX: shift mainwindow visibility does not work#193
FIX: shift mainwindow visibility does not work#193notplus wants to merge 1 commit intoaltairwei:developfrom
Conversation
notplus
commented
Sep 13, 2021
- 修复任务栏图标中“显示/隐藏主窗口”失效问题
|
另外我想引入全局快捷键,这样可以使用全局快捷键快速显示/隐藏主窗体,像微信的 Ctrl+Alt+W 热键 |
|
有这个问题吗? |
|
我似乎重新定义过这个行为,你的这个变更得在 Linux 、MacOS 和 Windows 上充分测试才行。这几个平台下系统托盘图标的行为不太一致。 |
53172e5 to
e616e5e
Compare
|
Windows 上无法隐藏,可以显示,Ubuntu 20.04 没问题 |
你这个想法我比较赞同,但是我没有实现它的思路。 |
|
Windows 平台使用 |
|
这个 commit 主要为了后续使用全局快捷键快速隐藏/显示主窗口,按照我的想法,Windows 平台上通过鼠标单击任务栏图标(或右键显示/隐藏主窗口)无法隐藏主窗口,只能显示主窗口,跟现在一样。然后当焦点处于主窗口并使用快捷键时,可以隐藏主窗口,因为此时 |
我试了一下,QHotkey这个库挺好用 |
也就是说在你预期中 Windows 平台的行为与 MacOS 和 Linux 有差异对吧? |
|
Windows 平台的行为和 Linux 有差异,表现为鼠标操作隐藏主窗口无效,Linux 平台行为符合预期,另外我这边没有在 MacOS 平台测试 |
我晚上在 MacOS 上测试下你的这个 PR |
对于这种仅依赖于 Qt 的库,我倾向于使用 Git Submodule 来引入它,具体怎么做你可以参考下 Git Submodule Method ,以及我在 feat/skin-system 分支对 framelesshelper 库的引入 8557e6e 。 |
|
ok,我试试 |
我整理一下 TrayIcon 点击后的行为逻辑:
|
|
我在 Linux 上测试了下,这个 PR 的功能没有啥问题。 |
|
我在 MacOS 上测试了,此 PR 可以隐藏主界面。但我发现一个问题,当主界面被其他窗口遮挡时(理论上此时应该处于非活跃窗口),点击 “显示/隐藏主窗口” 会导致应用程序 “隐藏”,但实际上我们预期的是主界面被激活呈现到最上层。 这个问题的很可能是 MacOS 平台,在点击 TayIcon 后激活了主界面窗口。 |
|
鉴于三大平台上 第一种方案,“显示” 功能可以通过系统托盘图标、QHotkey 来使用,而 “隐藏” 功能只有当窗口处于激活状态时才能使用。如果想使用同一个快捷键来切换 “显示” 和 “隐藏” 状态,可以将两个功能设置成同一个键。不过全局快捷键与应用内部快捷键的优先性有待测试。 另外一种方案是,仅允许 QHotkey 使用 |