首先打开Ui界面,创建一个QToolBar:
然后在下方创建QAction:
选择“Action编辑器”,点击新建Action
之后将新建的Action拖动到QToolBar上:
之后需要在代码中设置,将多个QAction添加到一个QActionGroup,并设置其exclusionPolicy()属性,即可将这些Action变为一次只能选中一个,代码如下:
void MainWindow::initUi()
{
QActionGroup* toolGroup = new QActionGroup(this);
toolGroup->addAction(this->ui->drawLine);
toolGroup->addAction(this->ui->drawCircle);
toolGroup->addAction(this->ui->drawEllipse);
toolGroup->addAction(this->ui->selectTool);
toolGroup->addAction(this->ui->fillPolygon);
toolGroup->addAction(this->ui->fillFence);
toolGroup->addAction(this->ui->drawPolygon);
toolGroup->setExclusionPolicy(QActionGroup::ExclusionPolicy::ExclusiveOptional);
}
关于ExclusionPolicy属性,一共有三个可选项:
Constant | Description |
---|---|
QActionGroup::ExclusionPolicy::None | The actions in the group can be checked independently of each other. |
QActionGroup::ExclusionPolicy::Exclusive | Exactly one action can be checked at any one time. This is the default policy. |
QActionGroup::ExclusionPolicy::ExclusiveOptional | At most one action can be checked at any one time. The actions can also be all unchecked |