Non interactive items in QMenu

前端 未结 3 1944
伪装坚强ぢ
伪装坚强ぢ 2020-12-11 05:41

I\'m trying to build a menu with some items that are not interactive in QT. I subclass QMenu in my MyCustomMenuClass. I\'m trying to add section titles to my menu so that it

3条回答
  •  无人及你
    2020-12-11 06:41

    From the QMenu documentation:

    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.

    This rings a bell: Widgets! You can add a widget to the menu? That means you are settled, you can do whatever you want.

    What you need is a QWidgetAction object. It allows you to insert a custom widget as an action. Your titles will be custom widgets. If you only need a title, a QLabel should suffice:

    QMenu* myMenu = new QMenu(...);
    QLabel* label = new QLabel(tr("Title"), this);
    label->setAlignment(Qt::AlignCenter);
    
    QWidgetAction* a = new QWidgetAction(myMenu);
    a->setDefaultWidget(label);
    

    -- Source for this code

    See this related question for more sophisticated example code: Is there a way to add a Widget to a QMenu in QtCreator

提交回复
热议问题