Qt按钮
1.QPushButton四个信号
这里采用自动关联的方式实现按钮与四种信号的关联。
① clicked() 指鼠标按下和释放两个动作过程
② pressed() 单指鼠标按下过程
③ released() 指鼠标单击释放的过程
④ toggled() 类似于插座开关按钮,单次点击开关按下,再次点击开关弹起
toggled()需要将按钮的setCheckable(True)
ui->pushButton->setCheckable(true);
这里我们在ui文件中将pushbutton按钮关联四种信号
以下生成了四个槽函数
void Widget::on_pushButton_clicked()
{
qDebug()<<"clicked"<<endl;
}
void Widget::on_pushButton_pressed()
{
qDebug()<<"pressed"<<endl;
}
void Widget::on_pushButton_released()
{
qDebug()<<"released"<<endl;
}
void Widget::on_pushButton_toggled(bool checked)
{
qDebug()<<"toggled"<<endl;
}
这里我们点击按钮,效果如下;测试结果:
2.QRadioButton单选按钮
常用信号
①icon网站获取资源:
链接: https://www.iconfont.cn/
添加Icons到指定资源文件
②文件目录
③修改style.qss文件
此处修改是将所有的RadioButton按钮的可选与否全部置换
indicator(指示器)控制小圆圈的大小
QRadioButton::indicator:unchecked {image:url(:/Icons/RadioButton_NO.png)}
QRadioButton::indicator:checked {image:url(:/Icons/RadioButton_OK .png)}
QRadioButton {font-size:30px; color:#99404040}
④结果
⑤实现组管理(组间互斥)
⑥实现组内多选操作
⑦QRadioButton通常使用toggled()作为信号(需修改checkable属性)
改写槽函数
男女选项为互斥选项exclusive为true,只能选择一个,选择完毕会调用所有的槽函数,传入对应的checked值
void Widget::on_radioButton_toggled(bool checked)
{
qDebug()<<"男性别::"<<checked<<endl;
}
void Widget::on_radioButton_2_toggled(bool checked)
{
qDebug()<<"女性别::"<<checked<<endl;
}
课选选项exclusive:false,当点击对应选项是只会执行对应的槽函数
void Widget::on_radioButton_3_toggled(bool checked)
{
qDebug()<<"语文状态:"<<checked<<endl;
}
void Widget::on_radioButton_4_toggled(bool checked)
{
qDebug()<<"数学状态:"<<checked<<endl;
}
3.QCheckBox
①style.css
indeterminate是半选
QCheckBox::indicator:unchecked{image:url(:/uncheck.png)}
QCheckBox::indicator:indeterminate{image:url(:/indeterminate.png)}
QCheckBox::indicator:checked{image:url(:/check_fill.png)}
②常用信号stateChanged();
开启三态模式
③槽函数
void Widget::on_checkBox_stateChanged(int arg1) // 三态选择信号
{
switch(arg1){
case Qt::Checked:
qDebug()<<"全选信号:"<<arg1<<endl;
break;
case Qt::PartiallyChecked:
qDebug()<<"半选信号:"<<arg1<<endl;
break;
case Qt::Unchecked:
qDebug()<<"未选信号:"<<arg1<<endl;
break;
}
}
④结果