Non interactive items in QMenu

前端 未结 3 1943
伪装坚强ぢ
伪装坚强ぢ 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:43

    For a popup menu you can create your custom QWidgetAction to add to a popup menu.

    This is sample QWidgetAction:

    #include 
    
    class  myCustomWidgetAction: public QWidgetAction
    {
        Q_OBJECT
    public:
        explicit myCustomWidgetAction(QWidget * parent);
    
    protected:
        QWidget * createWidget(QWidget *parent);
    
    };
    
    
    myCustomWidgetAction::myCustomWidgetAction(QWidget * parent):QWidgetAction(parent) {
    }
    QWidget * myCustomWidgetAction::createWidget(QWidget *parent){
        myCustomWidget * widget=new myCustomWidget(parent);
        return widget;
    }
    

    You can then add your widget to a toolButton to be diaplayed in a popup menu:

    myCustomWidgetAction * widgetAction   = new myCustomWidgetAction(this);
    
    ui->toolButton->addAction(widgetAction);
    

    Your custom widget can be a list containing different elements or it can be any other widget. You can also add multiple instances of myCustomWidgetAction to the toolButton.

    You can also add it to a QMenu like:

    QMenu* menu = new QMenu();
    
    menu->addAction(widgetAction);
    

提交回复
热议问题