自定义画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::CustomizeWindowHint 标志的 QMainWindow 不起作用 aero snap