我看到它QButtonGroup让你在这样做时输入一个整数,buttonGroup->addButton然后你可以通过信号访问它buttonClicked。这可以方便地识别单击了组中的哪些按钮。为什么 s 没有类似的东西QActionGroup?QActionGroups 有一个selected信号,它将传回给您,QAction您可以使用该信号来识别单击了哪个操作,但我仍然需要一个关联的信号Id,以便我可以使用我的enum. 我可以在其中QAction存储这样一个整数而不需要黑客攻击吗?
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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |