我正在尝试在 Windows 上的 Qt 中创建一个支持本机功能的无边框窗口:aero snap、DWM 调整大小和最小化、抖动等。就像 Office 2013 或 Visual Studio 2012。但它们是用 wpf 编写的。wpf 和纯 WinApi 中有很多示例,但我找不到任何 Qt 示例。
最近我发现了暴雪的战网应用(截图)。他们使用的是 QT 4.8.5,他们的主窗口的外观和行为完全符合我在我的应用程序中的要求。
有谁知道这是怎么做到的吗?
谢谢你的帮助。
我找到了解决此问题的方法。
我没有使用 Qt 主窗口,而是创建了一个简单的 WinAPI 无边框窗口,就像在这个 SO 讨论中一样。然后我从 QtWinMigrate 项目中添加了 QWinWidget,并用它填充了窗口。
结果,主窗口和可调整大小的边缘由 WinAPI 处理,而主窗口内的所有内容都由 QWinWidget 处理。使用 QWinWidget,您可以像在任何其他 Qt 应用程序中一样创建 Qt gui。
也许这可能会对你有所帮助,Windows 特定的 Qt 类 WinExtras
http://qt-project.org/doc/qt-5/qtwin.html
http://qt-project.org/doc/qt-5/qtwinextras-module.html
此外,您还可以使用 QT Quick 2.0 设计类似于 WPF 的 UI