代码:
// 创建 QCheckBox 控件(父类选择QLineEdit)
QCheckBox *checkBox = new QCheckBox(ui->login_password_lineEdit);
// 设置样式表(图片为眼睛样式)
checkBox->setStyleSheet("QCheckBox {spacing: 5px;border: none;background-color: transparent;}"
"QCheckBox::indicator {width: 20px;height: 20px;border: none;image: url(:/file/test_no_display.png);}"
"QCheckBox::indicator:checked {image: url(:/file/test_display.png);}");
//创建信号和槽连接
connect(checkBox, SIGNAL(stateChanged(int)),this, SLOT(slot_checkbox_state_changed(int)));
//设置控件的位置(需要根据QLineEdit的坐标进行调整)
checkBox->setGeometry(ui->login_password_lineEdit->pos().x() + 160,ui->login_password_lineEdit->pos().y() + 4,20,20);
//对应的槽函数
void user_login::slot_checkbox_state_changed(int state)
{
if(state){
ui->login_password_lineEdit->setEchoMode(QLineEdit::Normal);
}else{
ui->login_password_lineEdit->setEchoMode(QLineEdit::Password);
}
}
效果图:
样式素材可自行搜索,自己在用的是