一、PushButton
1. 介绍
在Qt中最常见的就是按钮,它的继承关系如下:
2. 常用属性
3. 例子
我们之前写过一个例子,根据上下左右的按钮去操控一个按钮,当时只是做了一些比较粗糙的去演示信号和槽是这么连接的,这次我们通过学习了一些按钮的接口,去优化这个小demo。
我们把之前操控的按钮,附上一个图标,并且上下左右按钮去设置一些快捷键以及连续点击的设置去熟悉一下上面的使用。
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QIcon icon(":/photo/1.jpg");ui->pushButton_photo->setIcon(icon);ui->pushButton_photo->setIconSize(QSize(120,120));// 将上下左右关联到键盘上ui->pushButton_up->setShortcut(Qt::Key_W);ui->pushButton_down->setShortcut(Qt::Key_S);ui->pushButton_left->setShortcut(Qt::Key_A);ui->pushButton_right->setShortcut(Qt::Key_D);// 设置鼠标允许按下时持续触发ui->pushButton_up->setAutoRepeat(true);ui->pushButton_down->setAutoRepeat(true);ui->pushButton_left->setAutoRepeat(true);ui->pushButton_right->setAutoRepeat(true);}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_up_clicked()
{QRect rect = ui->pushButton_photo->geometry();ui->pushButton_photo->setGeometry(rect.x(),rect.y()-10,rect.width(),rect.height());
}void Widget::on_pushButton_down_clicked()
{QRect rect = ui->pushButton_photo->geometry();ui->pushButton_photo->setGeometry(rect.x(),rect.y()+10,rect.width(),rect.height());
}void Widget::on_pushButton_left_clicked()
{QRect rect = ui->pushButton_photo->geometry();ui->pushButton_photo->setGeometry(rect.x()-10,rect.y(),rect.width(),rect.height());
}void Widget::on_pushButton_right_clicked()
{QRect rect = ui->pushButton_photo->geometry();ui->pushButton_photo->setGeometry(rect.x()+10,rect.y(),rect.width(),rect.height());
}
二、RadioButton && CheckBox
1. 介绍
(1)QRadioButton是单选按钮,也就是勾选框,可以让我们在多个勾选框中选一个,勾选框具有排他属性,也就是在一个控件内的所有勾选框,勾选一个以后,其他的就不会被处于勾选状态,类似于单选题的选项,还可以设置QButtonGroup(单选组)的方式实现多选,在组内允许选一个。
(2)CheckBox则是复选框,它对比单选框,基本一样,不过是没有排他性,即,复选框可以选择多个,类似于多选题中的选项
2. 常用属性
属性 | 说明 |
checkable | 是否允许选中 |
checked | 是否处于选中状态 |
autoExclusive | 是否排他 选中一个按钮之后是否会取消其他按钮的选中 |
3. 例子
模拟一下点餐里面选择套餐的情景,熟悉上面的接口
总结
1. 首先是熟悉常见的关于按钮的控件,PushButton、RadioButton、CheckBox,熟悉了这些控件的属性,并且写了简单的小例子
2. 关于PushButton的图标设置、快捷键设置、连点设置、以及位置属性的设置
3. 槽信号的介绍
4. 按钮组QButtonGroup的作用