1.在QT项目中常常需要用到QPushButton控件,有时需要按键实现多态点击,并在不同的点击状态时显示出不同的文字。
话不多说,先上效果图:
2.代码实现
(1)按键样式设计
Button->setFixedSize(176,55);
Button->setText("连接");
Button->setFont(font);
Button->setStyleSheet("QPushButton{background-color:#060C24;}"
“QPushButton{color:#FFFFFF;border-radius:5}"
"QPushButton:hover{background-color:#1B81EF;}"
"QPushButton:checked{background-color:#1B81EF;}");
其中font是设计字体大小,hover是鼠标悬浮时按键样式。
(2)逻辑实现
要实现按键多态,先设置按键,使得按键是可选中的。
Button->setCheckable(true);
实现按下时文字变化
//如果按键是选中状态,就设置文本为停止
//如果按键是未选中状态,就设置文本为选择
connect(Button,&QPushButton::clicked,[=](){
if(Button->isChecked()){
Button->setText("停止");
}else if(!Button->isChecked()){
Button->setText("连接");
}
});