分享按钮组实现小例子
- 2020 年 4 月 1 日
- 筆記
❝实现单选按钮状态的功能。当按钮按下触发后将会被标记选中,其他按钮释放选中标记。 ❞

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