QT/C++使用QMessageBox实现一个简单的登陆窗口
一、使用场景:软件需要登陆才能解锁部分功能,未登陆之前使用hide()隐藏交互组件,登陆后使用show()重现交互组件。
二、代码实现:
#include <QMessageBox>
#include <QInputDialog>void MainWindow::onLoginClicked()
{// 使用 QInputDialog 获取密码bool ok;QString password = QInputDialog::getText(this, "用户登录","管理员密码:",QLineEdit::Password, // 密码模式,显示为***"", // 默认值&ok);// 如果用户点击了确定按钮if (ok && !password.isEmpty()) {if (validatePassword(password)) {statusLabel->setText("当前状态:已登录(管理员)");QMessageBox::information(this, "登录成功", "密码正确,登录成功!");} else {statusLabel->setText("当前状态:登录失败");QMessageBox::warning(this, "登录失败", "密码错误,请重试!");}} else if (ok && password.isEmpty()) {QMessageBox::warning(this, "输入错误", "密码不能为空!");}
}bool MainWindow::validatePassword(const QString &password)
{// 这里设置您的密码,例如 "admin123"const QString correctPassword = "admin123";return password == correctPassword;
}