自定义画QMainWindow标题栏

Posted

技术标签:

【中文标题】自定义画QMainWindow标题栏【英文标题】:Custom painting QMainWindow title bar 【发布时间】:2009-11-21 18:55:24 【问题描述】:

有人知道如何在 QT 中自定义主窗口的标题栏吗?我想在“正常”绘图上进行一些自定义绘画。

我感兴趣的 QT 版本是 4.5 或 4.6 (beta)

【问题讨论】:

【参考方案1】:

其实标题栏是“窗口管理器”添加的一部分。这可能是 Windows、OS X 或您在 X11 环境中运行的任何东西。无论哪种方式,您都需要移除杆并用您自己的杆替换它。为此,请使用 Qt::WindowFlags (http://doc.qt.digia.com/4.5/qt.html#WindowType-enum) 使标题栏消失。然而,这确实使您的应用程序对平台敏感,并且在 X11 上,对窗口管理器敏感。你只能提示你想要一个没有标题栏的窗口...

【讨论】:

我试图避免这种情况......但我认为除了按照你说的做之外别无选择。【参考方案2】:

您似乎正在从 Kernel_Panic 中寻找 QSkinObject:

http://www.qt-apps.org/content/show.php?action=content&content=67309

我测试了几次效果都很好。

【讨论】:

【参考方案3】:

尝试查看样式表...有一些关于如何在 QtAssistant 中自定义 QDockWidget 标题栏的示例...(查找“样式表”然后在树中选择“自定义 QDockWidget”)...

如果你没有找到任何东西,也许通过重新实现 QMainwindow ?

希望这会有所帮助...

【讨论】:

我想避免重新实现 QMainWindow。而且样式和样式表不支持主窗口标题栏。

以上是关于自定义画QMainWindow标题栏的主要内容,如果未能解决你的问题,请参考以下文章

Qt 向 QMainWindow 添加非菜单栏键盘快捷键

自定义菜单栏

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

浩辰CAD怎么自定义标题栏

PyQt5学习记录---QMainWindow菜单栏状态栏和工具栏

macOS 上的 PyQt5。添加到 QMainWindow 的自定义 QMenuBar 不可点击