我正在尝试建立一个菜单,其中包含一些在QT中不交互式的项目。我在MyCustomMenuClass中将QMenu子类化。我正在尝试将章节标题添加到菜单中,以便用户更清楚地看到。

例如,它应如下所示:

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

问题在于,节标题总是对鼠标有反应,但是我希望它们对鼠标没有反应,以使其更漂亮。关于如何做的任何想法?

最佳答案

从QMenu文档中:



这敲响了钟声:小工具!您可以将小部件添加到菜单吗?这意味着您已经安定下来,可以做任何您想做的事情。

您需要的是一个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/

10-11 16:24