如何解决如何使用QAction
我一直试图通过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 举报,一经查实,本站将立刻删除。