问题描述
我一直试图通过QMenu
向QAction
添加一个子菜单,但是它不起作用。
如您在下面看到的,我可以通过右键单击QTableWidget
来查看选择。
但是,从菜单“选项”中,我应该看到子菜单,但看不到。
以下步骤:
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 (将#修改为@)