在 Qt 中是否有类似 GTK.headerbar 或任何其他可能在窗口标题中添加小部件(例如按钮)的东西?
提前致谢。
最佳答案
简短的回答是“不”,Qt 没有实现任何类型的窗口装饰(除了 QWS,这是一个不同的故事)。
在 Linux 中,标题栏(窗口装饰)由窗口管理器提供,例如 Metacity 或 Compiz。 Windows 和 OSX 使用它们自己的窗口装饰。 Qt 几乎无法控制窗口标题栏上发生的事情。
Gnome3/GTK3(而不是 Gnome2)允许您在标题栏中使用小部件,但许多其他桌面环境/窗口管理器并非如此。您的选择是:
- 使用窗口管理器/操作系统提供的API
- 优点:原生外观。
- 缺点:您需要为每个操作系统/桌面环境维护单独的实现。并非所有人都支持这样做。
- 隐藏窗口装饰并实现你自己的
- 优点:一次编码,到处使用。例如,Google Chrome 和 Vivaldi 就是这样做的。
- 缺点:您需要实现窗口调整大小和移动
- 在系统标题栏顶部使用始终跟随窗口的叠加小部件
- 优点:非常简单,但我不推荐这样做。
- 缺点:移动主窗口时小部件总是滞后。 native 外观仍然需要实现。考虑到用户可以切换主题,小部件看起来会很奇怪。
关于c++ - 窗口标题 Qt 中的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28724802/