Qt 我在哪里可以存储QAction(Group)ID?

Qt 我在哪里可以存储QAction(Group)ID?,qt,Qt,我看到QButtonGroups允许您在执行buttonGroup->addButton操作时输入一个整数,然后您可以通过buttonClicked信号访问它。这便于识别组中的哪些按钮被单击。为什么QActionGroups没有类似的功能QActionGroups有一个选中的信号,该信号将传回QAction,您可以使用它来标识单击了哪个操作,但我仍然需要一个关联的Id,以便我可以使用我的enum。在QAction的任何地方,我都可以存储这样一个整数,而不是黑客攻击 用法示例: QAction是

我看到
QButtonGroup
s允许您在执行
buttonGroup->addButton
操作时输入一个整数,然后您可以通过
buttonClicked
信号访问它。这便于识别组中的哪些按钮被单击。为什么
QActionGroup
s没有类似的功能
QActionGroup
s有一个选中的
信号,该信号将传回
QAction
,您可以使用它来标识单击了哪个操作,但我仍然需要一个关联的
Id
,以便我可以使用我的
enum
。在
QAction
的任何地方,我都可以存储这样一个整数,而不是黑客攻击


用法示例:
QAction
是一个
QObject
,这意味着您可以使用
QObject::setProperty
QObject::property
在其上设置和获取任意键值对,这意味着您可以使用
QObject::setProperty
QObject::property
在其上设置和获取任意键值对,我认为这是一个合理的解决方案。谢谢:)关于Qt还有很多需要了解的地方。我想这是一个合理的解决方案。谢谢:)关于Qt还有很多需要学习的地方。
toolsActGroup = new QActionGroup(this);
toolsActGroup->setExclusive(true);

selectToolAct = new QAction(QIcon(":/icons/custom/select.png"), tr("&Select"), toolsActGroup);
selectToolAct->setIconVisibleInMenu(false);
selectToolAct->setShortcut(Qt::Key_S);
selectToolAct->setCheckable(true);
selectToolAct->setStatusTip(tr("Select objects to modify or delete"));
selectToolAct->setProperty("tool", EditorScene::Select);
selectToolAct->setChecked(true);

// more actions here...

connect(toolsActGroup, SIGNAL(selected(QAction*)), this, SLOT(toolSelected(QAction*))); // use one signal for the whole (exclusive) action group

void EditorWindow::toolSelected(QAction* act) {
    // pass the value to the widget that needs it
    m_scene->setTool((EditorScene::Tool)act->property("tool").toInt());
}