如何使QMenuBar项目显示在其QMenu上



首先,我对Qt和Qt Creator还很陌生,所以如果这是一个愚蠢的问题,请放心。

我在练习使用QtCreator,玩css样式。特别是,我正试图让菜单栏及其菜单看起来像这样(在Windows上):https://i.stack.imgur.com/9lMnQ.png.

然而,到目前为止,我能做到的最接近的是:https://i.stack.imgur.com/5Nlen.png.

我在网上搜索过,看看是否有人尝试过这样的东西,但我什么都没找到。

我能想到的唯一可能的解决方案是,如果菜单栏项目(没有底部边框)可以呈现在菜单上方,使它们重叠,覆盖它们重叠的宽度上的顶部边框。

如果这不起作用或不可能,或者其他什么,请建议任何其他解决方案/解决方案/技巧。

提前感谢!

我认为唯一好的解决方案是避免任何技巧并创建一个新的小部件:

  • 创建从具有Qt::Popup属性的QWidget继承的新类
  • QMenu放入小部件的布局中
  • 获取使用QMenuBar::getActionGeometry点击的QMenuBar项目的位置
  • 计算小部件和小部件中要放置在菜单栏项目上的选项卡的位置
  • 使用QWidget::setMask自定义小部件的形式,使其看起来像一个带选项卡的矩形
  • 显示小部件而不是QMenu

最新更新