利用UI实现一个简单的用户登录界面,并实现用户登录和密码判断功能,(信号和槽函数)
时间: 2024-04-12 09:31:06 浏览: 18
以下一个使用Qt框架实现简单用户登录界面的示例代码:
```cpp
#include <QtWidgets>
class LoginWidget : public QWidget
Q_OBJECT
public:
Login(QWidget *parent = nullptr) : QWidget(parent)
{
// 创建界面元素
QLabel *usernameLabel = new QLabel("用户名:");
QLabel *passwordLabel = new QLabel("密码:");
QLineEdit *usernameLineEdit = new QLineEdit;
QLineEdit *passwordLineEdit = new QLineEdit;
passwordLineEdit->setEchoMode(QLineEdit::Password);
QPushButton *loginButton = new QPushButton("登录");
// 创建布局
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(usernameLabel);
layout->addWidget(usernameLineEdit);
layout->addWidget(passwordLabel);
layout->addWidget(passwordLineEdit);
layout->addWidget(loginButton);
// 设置布局
setLayout(layout);
// 连接信号和槽函数
connect(loginButton, &QPushButton::clicked, this, &LoginWidget::checkLogin);
}
signals:
void loginSucceeded();
private slots:
void checkLogin()
{
// 获取用户名和密码
QLineEdit *usernameLineEdit = findChild<QLineEdit*>("usernameLineEdit");
QLineEdit *passwordLineEdit = findChild<QLineEdit*>("passwordLineEdit");
QString username = usernameLineEdit->text();
QString password = passwordLineEdit->text();
// 判断用户名和密码是否正确
if (username == "admin" && password == "123456")
{
qDebug() << "登录成功";
emit loginSucceeded();
}
else
{
qDebug() << "登录失败";
QMessageBox::critical(this, "错误", "用户名或密码错误!");
}
}
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent)
{
// 创建登录界面
LoginWidget *loginWidget = new LoginWidget;
setCentralWidget(loginWidget);
// 连接登录成功信号
connect(loginWidget, &LoginWidget::loginSucceeded, this, &MainWindow::showMainPage);
}
private slots:
void showMainPage()
{
// 显示主页面
QMessageBox::information(this, "提示", "登录成功,跳转到主页面");
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.show();
return app.exec();
}
#include "main.moc"
```
在这个示例中,我们创建了一个名为`LoginWidget`的自定义窗口部件,用于实现用户登录界面。界面包含了用户名输入框、密码输入框和登录按钮。在构造函数中,我们创建了界面元素并设置了布局,然后将登录按钮的`clicked`信号连接到槽函数`checkLogin()`上。
在槽函数`checkLogin()`中,我们获取用户名和密码输入框的文本,并判断是否与预设的用户名和密码匹配。若匹配成功,则发射登录成功信号`loginSucceeded()`;否则,弹出错误提示对话框。
同时,我们创建了一个名为`MainWindow`的主窗口,将`LoginWidget`作为其中央部件。在主窗口的槽函数`showMainPage()`中,我们显示一个简单的提示对话框,表示登录成功。
最后,在`main()`函数中,我们创建了一个`QApplication`实例和`MainWindow`实例,并调用`app.exec()`启动应用程序的事件循环。
请注意,以上代码只是示例,实际使用时可能需要根据具体情况进行适当修改。