QAbstractButton类是按钮部件的抽象基类,提供了按钮的通用的功能。
常用的有:
QPushButton | 标准按键 |
QCheckBox | 多选按钮 |
QRadioButton | 单选按钮 |
QGroupBox | 选项容器 |
QToolButton | 工具按键(少用) |
一:QPushButton
这是最常用的按键之一。
构造函数有三种:可以添加图标、内容和父类。
QPushButton *pb1=new QPushButton(QIcon(":/new/prefix1/E:/图片/24110307_6.jpg"),"按键一",this);
pb1->setFixedSize(200,200);//设置按键大小
pb1->move(100,100);//移动按键
常见的一些函数:
函数 | 功能 |
setText() | 添加控件文字信息 |
setFixedSize() | 修改控件大小 |
adjustSize() | 自动调整控件大小(自适应) |
text() | 获取控件内容(QString) |
move() | 设置按钮位置 |
setFont() | 设置字体 |
setDefault() | 相应控件click事件 |
setFlat() | 外观设置为平铺 |
setIcon() | 添加图标 |
setIconSize() | 设置图标大小 |
setGeometry() | 设置按键位置和大小 |
setCursor() | 设置鼠标位于按钮时的光标类型 |
setDisabled() setEnabled() | 按键的禁用和启用 |
setMenu | 设置菜单 |
QPushButton常见的一些信号函数:
QPushButton *pb1=new QPushButton(this);
pb1->setFixedSize(200,60);//设置按键大小
pb1->move(100,100);//移动按键
//等价于pb1->setGeometry(100,100,200,60);
pb1->setText("按键");
pb1->setIcon(QIcon(":/new/prefix1/E:/图片/24110307_6.jpg"));//设置图标
pb1->setIconSize(QSize(40,40));//设置图标大小
QString p=pb1->text();//获取按键内容
qDebug()<<p;//输出按键内容
QFont font;
bool ok;
font=QFontDialog::getFont(&ok,QFont("宋体",20),this,"选择字体");
pb1->setFont(font);//设置字体
pb1->setDisabled(true);//禁用按键
//pb1->setEnabled(true);//启用按键
setMenu的使用:
QPushButton *pb1=new QPushButton("按键",this);
pb1->move(200,200);
QMenu *menu=new QMenu;
menu->addAction("一");
menu->addAction("二");
menu->addAction("三");
pb1->setMenu(menu);
QMenu后面会详细介绍
二QRadioButton
QRadioButton和QGroup一起使用,实现单选功能。
构造函数有:
常用的函数:
setChecked(bool) | 设置默认选中 |
信号&QRadioButton::toggled(bool) | 获取按键状态:选中为true |
isCheck() | 获取按键当前状态 |
QGroupBox *GBox=new QGroupBox(this);
GBox->setTitle("标题选择");//设置标题
GBox->move(100,100);
QRadioButton *R1=new QRadioButton(GBox);
QRadioButton *R2=new QRadioButton(GBox);
QRadioButton *R3=new QRadioButton(GBox);
QRadioButton *R4=new QRadioButton(GBox);
R1->setText("选项一");
R2->setText("选项二");
R3->setText("选项三");
R4->setText("选项四");
QVBoxLayout *layout=new QVBoxLayout(GBox);
layout->addWidget(R1);
layout->addWidget(R2);
layout->addWidget(R3);
layout->addWidget(R4);
R1->setChecked(true);//默认选中
connect(R1,&QRadioButton::toggled,[=](int p)
{
qDebug()<<p;
});
qDebug()<<R1->isChecked();//获取R1的当前状态
三:QCheckBox
QCheckBox一般和QGroupBox一起使用,实现多项选择。
QCheckBox的构造函数:可以设置选项标志信息,和父类。
stateChanged(int x) | 使用该函数获取选项的状态 |
setTristate(bool) | 是否对选项进行监听 |
isChecked() | 获取是否为选中状态,会返回一个bool值 |
注意:isChecked和setTristate一起使用时,预选和选中 isChedked都为true
QGroupBox *GBox=new QGroupBox(this);
GBox->setTitle("标题选择");//设置标题
GBox->setGeometry(100,100,200,400);
QCheckBox *CBox1=new QCheckBox(GBox);
QCheckBox *CBox2=new QCheckBox(GBox);
QCheckBox *CBox3=new QCheckBox(GBox);
QCheckBox *CBox4=new QCheckBox(GBox);
CBox1->setText("第一个选项");
CBox2->setText("第二个选项");
CBox3->setText("第三个选项");
CBox4->setText("第四个选项");
QVBoxLayout *layout=new QVBoxLayout(GBox);//创建一个垂直布局
layout->addWidget(CBox1);
layout->addWidget(CBox2);
layout->addWidget(CBox3);
layout->addWidget(CBox4);
CBox1->setTristate(true);//启动监听
connect(CBox1,&QCheckBox::stateChanged,[=](int p)//设置一个参数,接收信息
{
qDebug()<<p;
qDebug()<<CBox1->isChecked();
});
stateChanged 会返回状态 2 (选中)1(预选) 0(未选中)
四:QToolButton
QToolButton工具按键一般用于QToolBar中,不会单独使用,之后和QToolBar一起介绍。