- QPushButton 可以显示图标
- QToolButton 工具按钮 可以显示图标 可以设置透明效果
- QRadioButton 单选按钮
- QCheckBox 多选按钮
多个单选按钮可以用GroupBox分组
按钮可以设置默认选中状态,多选按钮可以设置半选状态
代码:
//widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
bool sex; //性别 男:true 女:false
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
//widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include "QDebug"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//单选默认选中
ui->rBtn_man->setChecked(true);
this->sex=true;
//监听 用户选择女的选项
connect(ui->rBtn_woman,&QRadioButton::clicked,[=](){
this->sex=false;
});
connect(ui->rBtn_man,&QRadioButton::clicked,[=](){
this->sex=true;
});
//提交,获取选择的性别
connect(ui->submit_btn,&QPushButton::clicked,[=](){
this->sex ? qDebug()<<"男": qDebug()<<"女"; //三元运算符
if(this->sex){
qDebug()<<"选择的是男";
}else{
qDebug()<<"选择的是女";
}
});
//多选框
//监听多选框中选项1是否被选中
ui->checkBox_1->setTristate(true); //第三种状态 半选中状态
connect(ui->checkBox_1,&QCheckBox::stateChanged,[=](int state){
qDebug()<<state; //未选中是0 半选中是1 选中是2
});
}
Widget::~Widget()
{
delete ui;
}