gpt4 book ai didi

c++ - QMenu 中的非交互式项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:19 24 4
gpt4 key购买 nike

我正在尝试构建一个菜单,其中包含一些在 QT 中不可交互的项目。我在我的 MyCustomMenuClass 中继承了 QMenu。我正在尝试将部分标题添加到我的菜单中,以便用户更清楚。

例如,它应该是这样的:

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

问题是部分标题总是对鼠标有反应,但我希望它们不会对鼠标悬停使用react,这样会更漂亮。知道怎么做吗?

最佳答案

来自 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++ - QMenu 中的非交互式项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22635903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com