pushbutten 有两种状态 trigger(触发状态)toggled(切换状态)
trigger:类似枪械扳机,按下一次触发一次行为,然后返回初始状态。
toggled:类似刀闸切换开关,按下一次切换一次状态。
QT初始按钮均为trgger型。
通过Checkable来改变两种按钮状态
1.在ui界面设计时直接通过更改属性 如下:
2.通过代码查看和改变 如下:
isCheckable()-------------------------------
只能用来查看按钮类型,不能改变类型
qDebug()<<ui->pushButton->isCheckable()<<endl;
输出:true 表示当前pushButten按钮为 toggle 切换型按钮
输出:false 表示当前pushButten按钮为 trigger 触发型按钮
setCheckable(true)--------------------------
用来设置按钮类型,默认是false,表示触发型,如果改为ture则是开关型
ui->pushButton->setCheckable(true);
isChecked()---------------------------------
用来查看toggle型按钮当前开关状态:true闭合,false断开
setChecked()---------------------------------
用来设定toggle型按钮当前开关状态:true闭合,false断开
应用场景一:点动&启保停切换
pushButton 》》》》切换
pushButton_1 》》》》点动
label 》》》》 启停状态
label_2 》》》》点动数量
代码如下:
需要在mainwindow.h头文件中增加 int a = 0;作为计数变量
void MainWindow::on_pushButton_clicked()
{
if(ui->pushButton_1->isCheckable()){ //切换按钮状态
ui->pushButton_1->setCheckable(false);
}else{
ui->pushButton_1->setCheckable(true);
}
if(ui->pushButton_1->isCheckable()){ //切换按钮标签字
ui->pushButton_1->setText("启停按钮");
}else{
ui->pushButton_1->setText("点动按钮");
}
}
void MainWindow::on_pushButton_1_clicked(bool checked)
{
if(ui->pushButton_1->isChecked()){
ui->label->setText("启动状态");
}else{
ui->label->setText("停止状态");
}
if(ui->pushButton_1->isCheckable()){
}else{
a++;
QString x = "这个数:";
x.append(QString::number(this->a,10));
ui->label_2->setText(x);
}
}
效果: