­

分享按钮组实现小例子

❝实现单选按钮状态的功能。当按钮按下触发后将会被标记选中,其他按钮释放选中标记。 ❞

代码

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());