先看看效果:
利用QButtonGroup实现按钮的互斥选中。
取消选择,和选择第二个(可以通过参数控制选择哪个按钮)
ui文件:
左侧的按钮都需要设置为Checkable
或者代码里去设置
// 在ui文件里设置也是一样的效果,ui文件里勾选checkable
ui->homePushButton->setCheckable(true);
ui->savePushButton->setCheckable(true);
ui->printPushButton->setCheckable(true);
ui->settingPushButton->setCheckable(true);
我把代码都贴出来,注释写得比较清楚,大家看看代码应该清楚。
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QButtonGroup>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
void initButtonGroup();
void loadqss();
private slots:
void onButtonClicked(int id);
private:
Ui::Widget *ui;
QButtonGroup m_buttonGroup;
};
#endif // WIDGET_H