c – QMenu中的非交互式项目

我正在尝试使用一些在QT中不具有交互性的项目来构建菜单.我在MyCustomMenuClass中继承了QMenu.我正在尝试将节标题添加菜单中,以便用户更清楚.

例如,它应该如下所示:

My section 1 title
Action 1
Action 2
Action 3
My second section title
Action 4
Action 5

问题是部分标题总是对鼠标做出反应,但我希望它们不会对鼠标作出反应,以使其更漂亮.有什么想法怎么做?

解决方法

从QMenu文档:

There are four kinds of action items: separators,actions that show a submenu,widgets,and actions that perform an action. Separators are inserted with addSeparator(),submenus with addMenu(),and all other items are considered action items.

铃响了:小部件!您可以在菜单添加小部件吗?这意味着你已经安定下来,你可以随心所欲.

你需要的是一个QWidgetAction对象.它允许您将自定义窗口小部件作为操作插入.您的标题将是自定义小部件.如果你只需要一个标题,那么QLabel就足够了:

QMenu* myMenu = new QMenu(...);
QLabel* label = new QLabel(tr("<b>Title</b>"),this);
label->setAlignment(Qt::AlignCenter);

QWidgetAction* a = new QWidgetAction(myMenu);
a->setDefaultWidget(label);

Source for this code

有关更复杂的示例代码,请参阅此相关问题:Is there a way to add a Widget to a QMenu in QtCreator

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...