c – QMenu中的非交互式项目

前端之家收集整理的这篇文章主要介绍了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&C++相关文章