如何在QDockWidget标题栏中显示图标?
我的 QDockWidget 有窗口标题和关闭按钮。如何在标题栏中放置图标?
当我从资源中为 QDockWidget WindowIcon 属性选择图标时,它也不起作用。
有什么想法吗?
My QDockWidget has window title and close button. How do I put icon in title bar?
When I select icon from my recources for QDockWidget WindowIcon property, it's not working either.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
通过自定义代理样式:
示例:
Through custom proxy-style:
example:
感谢@Owen,但我想添加一些注释,对于 Qt 5.7:
1.QWidget::setStyle() 不拥有样式对象的所有权,因此您需要在之后删除它使用它,否则会导致资源泄漏。
2.对于QProxyStyle(QStyle*),QProxyStyle将取得输入样式的所有权,
但如果未设置自定义样式,则 w->style() 可能会返回 QApplication 的样式对象。
so
可能会拥有应用程序的样式对象的所有权,并且在销毁时,它将删除它。这将使应用程序在 QApplicatoin 关闭时崩溃。
所以现在我用
thanks to @Owen, but I'd like add a few notes, for Qt 5.7:
1.QWidget::setStyle() doesn't take owership of the style object, so you need delete it after using it, or it will cause a resource leak.
2.for QProxyStyle(QStyle*), QProxyStyle will take ownership of the input style,
but w->style() may return QApplication's style object if its custom style not set.
so
may take ownership of the app's style object, and on destruction, it will delete it. this will crash the app on QApplicatoin' shutdown time.
so now I use
我认为你可以使用 QDockWidget::setTitleBarWidget(QWidget *widget) 。
I think you can use QDockWidget::setTitleBarWidget(QWidget *widget).