❝实现单选按钮状态的功能。当按钮按下触发后将会被标记选中,其他按钮释放选中标记。 ❞
QButtonGroup *buttonGroup = new QButtonGroup(this);
/* 监听ButtonGroup按钮事件 */
connect(buttonGroup, SIGNAL(buttonClicked(int)), this, SLOT(onClicked(int)));
QList<QColor> colorList;
colorList << "red"
<< "green"
<< "blue"
<< "yellow"
<< "black"
<< "white";
foreach (const QColor &color, colorList) {
QPushButton *colorButton = new QPushButton(this);
colorButton->setFixedSize(100, 100);
/* 设置为单项选择 */
colorButton->setCheckable(true);
/* 画图标的颜色 */
QPixmap colorPixmap = QPixmap(20, 20);
QPainter painter;
painter.begin(&colorPixmap);
painter.fillRect(QRectF(0, 0, 20, 20),
QColor(color));
painter.end();
/* 设置按钮的图标 */
QIcon colorIcon = QIcon(colorPixmap);
colorButton->setIcon(colorIcon);
/* 添加按钮到QButtonGroup中 */
buttonGroup->addButton(colorButton, color.rgb());
}
QToolBar *toolBar = new QToolBar(this);
/* 将工具栏添加到QToolBar中 */
foreach (QAbstractButton *button, buttonGroup->buttons()) {
toolBar->addWidget(button);
}
/* 工具栏样式 */
toolBar->setStyleSheet(R"(
QToolBar {
border-style: solid;
border-radius: 5px;
margin: 0px;
padding: 0px;
color: white;
background: white;
})");
toolBar->resize(toolBar->sizeHint());