如何在主程序中判断登陆界面按了哪个按钮
时间: 2024-03-01 22:50:40 浏览: 16
在主程序中判断登录界面按了哪个按钮,可以通过信号和槽机制来实现。具体步骤如下:
1. 在登录界面的按钮的clicked()信号中,发送一个自定义信号,该信号带有一个参数,用于表示按下的按钮。例如,在学生登录和管理员登录的按钮中,分别定义一个自定义信号,如下所示:
```cpp
// 学生登录按钮
QPushButton *studentBtn = new QPushButton("学生登录");
connect(studentBtn, &QPushButton::clicked, this, [=]() {
emit loginBtnClicked("student");
});
// 管理员登录按钮
QPushButton *adminBtn = new QPushButton("管理员登录");
connect(adminBtn, &QPushButton::clicked, this, [=]() {
emit loginBtnClicked("admin");
});
// 自定义信号,用于发送登录按钮的信息
signals:
void loginBtnClicked(const QString &btnName);
```
2. 在主程序中连接登录界面的自定义信号,并定义槽函数来处理该信号。在槽函数中,根据参数值来判断按下的是哪个按钮。例如:
```cpp
// 连接登录界面的自定义信号
connect(loginPage, &LoginPage::loginBtnClicked, this, &MainWindow::onLoginBtnClicked);
// 登录按钮按下的槽函数
void MainWindow::onLoginBtnClicked(const QString &btnName)
{
if (btnName == "student") {
// 学生登录按钮按下
// TODO: 根据学生登录的逻辑进行处理
} else if (btnName == "admin") {
// 管理员登录按钮按下
// TODO: 根据管理员登录的逻辑进行处理
}
}
```
在上述代码中,当登录界面的按钮按下时,会发送一个自定义信号loginBtnClicked(),该信号带有一个参数btnName,用于表示按下的是哪个按钮。在主程序中连接该信号,并定义槽函数onLoginBtnClicked(),在该函数中根据参数值来判断按下的是哪个按钮,从而进行不同的处理。