qt设置的登陆界面密码输入对了才能进去的代码
时间: 2023-08-15 08:03:54 浏览: 110
下面是一个简单的Qt登陆界面的示例代码,其中包括密码输入框和“登录”按钮,只有在输入正确的密码时才能进入主界面:
```cpp
#include <QtWidgets>
class LoginWidget : public QWidget
{
Q_OBJECT
public:
LoginWidget(QWidget *parent = nullptr)
: QWidget(parent)
{
// 设置窗口标题
setWindowTitle(tr("Login"));
// 创建用户名和密码输入框
QLineEdit *usernameEdit = new QLineEdit;
QLineEdit *passwordEdit = new QLineEdit;
passwordEdit->setEchoMode(QLineEdit::Password);
// 创建登录按钮
QPushButton *loginButton = new QPushButton(tr("Login"));
connect(loginButton, &QPushButton::clicked, this, &LoginWidget::onLoginButtonClicked);
// 创建布局
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(new QLabel(tr("Username:")));
layout->addWidget(usernameEdit);
layout->addWidget(new QLabel(tr("Password:")));
layout->addWidget(passwordEdit);
layout->addWidget(loginButton);
// 设置布局
setLayout(layout);
// 保存正确的密码
m_password = "123456";
}
signals:
// 登录成功信号
void loginSuccess();
private slots:
// 登录按钮点击槽函数
void onLoginButtonClicked()
{
// 获取输入的密码
QString password = static_cast<QLineEdit *>(layout()->itemAt(3)->widget())->text();
// 检查密码是否正确
if (password == m_password) {
// 发送登录成功信号
emit loginSuccess();
// 关闭登录窗口
close();
} else {
// 弹出错误信息
QMessageBox::warning(this, tr("Login Failed"), tr("Incorrect password!"));
}
}
private:
QString m_password;
};
```
在主界面中,可以这样使用`LoginWidget`类:
```cpp
#include <QtWidgets>
#include "loginwidget.h"
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
// 创建登录窗口
m_loginWidget = new LoginWidget;
connect(m_loginWidget, &LoginWidget::loginSuccess, this, &MainWindow::onLoginSuccess);
// 显示登录窗口
m_loginWidget->show();
}
private slots:
// 登录成功槽函数
void onLoginSuccess()
{
// 创建主界面
QWidget *mainWidget = new QWidget;
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(new QLabel(tr("Welcome!")));
mainWidget->setLayout(mainLayout);
// 设置主界面
setCentralWidget(mainWidget);
}
private:
LoginWidget *m_loginWidget;
};
```
这样,当用户在登录窗口中输入正确的密码并点击“登录”按钮时,程序会关闭登录窗口并显示主界面。如果输入错误的密码,程序会弹出一个错误信息框。
阅读全文