Qt:QPushButton、QRadioButton、QCheckBox
目录
一、QPushButton
1.认识QPushButton
2.设置按钮图标
3.设置按钮的快捷键
二、QRadioButton
常用的信号
按钮的分组
三、QCheckBox
一、QPushButton
1.认识QPushButton
QPushButton继承自QWidget,所以在上一篇文章中介绍的QWidget的属性,理论上都是可以使用的。
严格来说,QPushButton并不是直接继承QWidget,而是QAbstractButton,这个类是一个抽象类,即接口类,包含了纯虚函数。
在QAbstractButton中,和QPushtButton关联较大的属性如下。
2.设置按钮图标
QIcon icon(":/LInux.jpg");ui->pushButton->setIcon(icon);//QSize q(100,100);ui->pushButton->setIconSize(q);
3.设置按钮的快捷键
//设置快捷键//方法一:直接写出按键的名称,容易出错ui->pushButton->setShortcut(QKeySequence("w"));//方法二:使用Qt内置的快捷键枚举ui->pushButton->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_A));
此外,我们知道在FPS游戏中,可以长按鼠标左键连发,相应的,对于一个按钮,是否可以长按鼠标左键来连击,并且默认情况下,按住键盘不松手,默认就是连续点击,那么可以设置鼠标的长按触发连击吗
//设置鼠标连击
ui->pushButton->setAutoRepeat(true);
二、QRadioButton
单选按钮,用来在多个选项中选择一个。
在QAbstractButton中,和QRadioButton关联较大的属性如下。
//让一个选项被选中
ui->radioButton->setChecked(true);
//
ui->radioButton->setCheckable(false);
//设置按钮不能被选中,但是按钮还是会响应执行槽函数。
故可以设置为
ui->radioButton->setEnabled(false);
常用的信号
void Widget::on_radioButton_clicked(bool checked)
{//checked表示按钮被选中,被选中时点击按钮,触发该信号qDebug() << "checked"<<checked;
}void Widget::on_radioButton_2_pressed()
{//pressed表示按下了按钮,但没有松开qDebug() << "pressed";
}void Widget::on_radioButton_3_released()
{//released表示松开按住的按钮qDebug() << "released";
}void Widget::on_radioButton_4_toggled(bool checked)
{//toggled表示切换状态时的信号qDebug() << "toggled" << checked;
}
按钮的分组
部分场景下,要对按钮分组,否则所有按钮之间都存在排他关系。而实际需求是让组和组之间不存在排他关系。
三、QCheckBox
QCheckBox表示复选按钮,可以允许选中多个。
和QCheckBox相关的属性也是checkable和checked, 都是继承自QAbstractButton,至于QCheckBox独有的属性tristate用来实现“三态复选框”,比较冷门,不作介绍。
代码举例
void Widget::on_pushButton_clicked()
{QString res = "今天的任务是:";if(ui->checkBox->isChecked()){res += ui->checkBox->text() + "、";}if(ui->checkBox_2->isChecked()){res += ui->checkBox_2->text() + "、";}if(ui->checkBox_3->isChecked()){res += ui->checkBox_3->text();}ui->label->setText(res);
}