QMenubar设置背景颜色
来源:网络收集 点击: 时间:2024-06-011.知道QMenu包含item,indicator,separator,right-arrow,scroller,tearoff,相对来说属于子控件比较多的控件了,其中item,indicator,separator,right-arrow是较为为常见的子控件。为了确定子控件的相对位置关系,我们可以通过对子控件设置不同的背景色和边框来进行查看。效果如图所示。

2.QMenu的边框阴影我们可以通过设置背景图片来实现。但在设置过程中,我发现QMenu的border-width属性存在bug。下图是在设置了以下QSS的效果

3.位图

4.QMenu默认是会根据条目的内容动态调整自身的显示大小的,然而在实际中当我在QSS中调整了文字的字体大小后,QMenu并没有调整为合适的大小,导致文字显示不全。这个问题困扰了我很久,后来在和另一个人讨论这个问题时突然想到,是否可能是在QMenu根据内容确定大小时QSS尚未生效。由于QSS实际上是通过QStyle来实现具体效果的,而QStyle则是通过调用QStyle::polish方法来对控件样式做初始化。在这个方法的文档中有这样一段说明:

5.QMenu其实是一个独立的顶层窗口,因此其位置是相对于整个桌面的,而不是相对于程序主窗口。在Qt的文档中有以下说明

6.在计算QMenu的弹出位置时我们可能需要使用到QMenu的窗口大小属性,然而文档中提到了

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.ff371.cn/art_868251.html