在 Qt 中使用无边框窗口的 Aero Snap

Posted

技术标签:

【中文标题】在 Qt 中使用无边框窗口的 Aero Snap【英文标题】:Aero Snap with Borderless Window in Qt 【发布时间】:2013-05-27 02:31:39 【问题描述】:

我正在尝试在 Qt 中创建 Metro 风格的界面,这意味着不使用 Windows 7 Aero 边框。我已经将窗口设置为无边框,并添加了使其可拖动的代码和使其最小化、最大化和关闭的按钮。但是,Aero Snap 不起作用。

我知道这是可能的,因为 Visual Studio 2012、MS Word 2013 和 Steam 都有带有 Aero Snap 的无边框窗口。

如何在无边界 Qt 应用程序中实现 Aero Snap?谢谢。

【问题讨论】:

你终于能做到了吗? ***.com/questions/16765561/… 【参考方案1】:

一直在找这种Qt窗口,终于找到了解决办法。

这个 GitHub 示例完成了这项工作(感谢 deimos1877)! https://github.com/deimos1877/BorderlessWindow

请务必使用 Visual Studio 编译器来获取所需的 DLL,它应该可以工作。 此示例包括 Aerosnap 支持、无边框窗口、最小化效果、aero 阴影。

【讨论】:

除了实现丑得要命。 @VioletGiraffe 你找到更好的了吗? @Zmey:不,我放弃了这个想法,非原生窗口一团糟。 为了节省其他人尝试的时间:这种方法的缺点是,这会使本机窗口的一部分显示在 Qt 的边框下方。当原生窗口调整大小时,它可以完全在 Qt 窗口下,不再向后拉伸。 我完全同意你的看法......而且我还没有找到更好的解决方案......

以上是关于在 Qt 中使用无边框窗口的 Aero Snap的主要内容,如果未能解决你的问题,请参考以下文章

带有 Qt::CustomizeWindowHint 标志的 QMainWindow 不起作用 aero snap

使用 for Qt 制作无边框窗口

Qt商业级无边框窗口实现源码(windowsmsvc)

QT窗口缩放,自定义边框,无边框缩放拉伸

QT窗口无边框最前

在 Qt 上制作一个没有控制框的无边框应用程序