如何在QMenu上显示QMenuBar项目

时间:2014-09-30 21:04:48

标签: css qt qmenu qmenubar

首先,我对Qt和Qt Creator相当新,所以如果这是一个愚蠢的问题,那就轻松了。

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

然而,到目前为止我能够获得的最近的是:http://i.stack.imgur.com/5Nlen.png

我在线搜索是否有人尝试过这样的事情,但我找不到任何东西。

我能想到的唯一可能的解决方案是菜单项(没有底部边框)是否可以在菜单上方渲染,以便它们重叠,覆盖它们重叠宽度的顶部边框。

如果这不起作用或不可能或其他任何建议任何其他解决方案/变通办法/黑客攻击。

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

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