如何使用QAction

问题描述

我一直试图通过QMenuQAction添加一个菜单,但是它不起作用。 如您在下面看到的,我可以通过右键单击QTableWidget来查看选择。 但是,从菜单“选项”中,我应该看到子菜单,但看不到。

menu

以下步骤:

rostreewidget.h

    class ROSTreeWidget : public QTreeWidget
    {
        Q_OBJECT

    public:
        ROSTreeWidget(QWidget *parent = nullptr);
    signals:
        void selectFrom();
        void editLaserTable();

    private:
        QAction *mActionSELECT_FROM;
        QAction *mActionEditLaserTable;
        QAction *mAddMenu;

        QActionGroup *actions1,*actions2;

        QMenu *mMenu;
        QMenu *submenu;
        QAction *actionA_Setup;


    };

rostreewidget.cpp

// Namespace ROSLaserItemTree
ROSTreeWidget::ROSTreeWidget(QWidget *parent) : QTreeWidget(parent)
{
    mActionSELECT_FROM = new QAction(QIcon("/home/mapper/execute-command"),"SELECT * FROM",this);
    mActionEditLaserTable = new QAction(QIcon(":"),"Edit LaserScan Table");
    mAddMenu = new QAction(QIcon(":"),"Options",this);

    addActions({ mActionSELECT_FROM,mActionEditLaserTable,mAddMenu});

    connect(mActionSELECT_FROM,&QAction::triggered,[&]() {
        emit selectFrom();
    });

    connect(mActionEditLaserTable,[&]() {
        emit editLaserTable();
    });

    connect(mAddMenu,[&]() {
        mMenu = new QMenu();
        submenu = mMenu->addMenu( "A" );
        QAction* actionA_Setup = submenu->addAction( "Setup" );
    });
}

到目前为止我所做的:

1):完成this source之后,我可以准备要插入QAction菜单和子菜单,但是很遗憾,它无法正常工作。 从打印屏幕上可以看到,我看不到“选项”下的选择。

2)我尝试过的另一件事是通过this other source,这也很清楚,但是我仍然不知道为什么未在QAction添加菜单

感谢您指出解决此问题的正确方向。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)