继续完善登录功能界面: 1)新的界面改为独立的.cpp和.h(以一个新类)的形式添加在工程里。2)在弹出界面中增加一个返回按钮,点击回到登录界面。 3)把所有的提示信息改为对话窗口的方式(用QWidget)。(例 密码错误时跳 出小窗口并提示文字:密码错误)│
时间: 2024-02-28 19:56:08 浏览: 69
OpenCV的CvvImage类下载,CvvImage.cpp和CvvImage.h打包
好的,下面是继续完善登录功能界面的步骤:
1. 创建一个新的类作为另一个窗体,将其单独保存在.cpp和.h文件中,并将其添加到工程中。在这个新类中添加一个返回按钮,用于回到登录界面。
2. 在弹出窗体中,使用QWidget控件来显示提示信息。例如,当密码错误时,弹出一个小窗口并显示“密码错误”的提示信息。
下面是代码示例:
secondwindow.h
```cpp
#ifndef SECONDWINDOW_H
#define SECONDWINDOW_H
#include <QMainWindow>
namespace Ui {
class SecondWindow;
}
class SecondWindow : public QMainWindow
{
Q_OBJECT
public:
explicit SecondWindow(QWidget *parent = nullptr);
~SecondWindow();
private slots:
void on_returnButton_clicked();
private:
Ui::SecondWindow *ui;
};
#endif // SECONDWINDOW_H
```
secondwindow.cpp
```cpp
#include "secondwindow.h"
#include "ui_secondwindow.h"
#include <QMessageBox>
SecondWindow::SecondWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::SecondWindow)
{
ui->setupUi(this);
this->setFixedSize(300, 700);
}
SecondWindow::~SecondWindow()
{
delete ui;
}
void SecondWindow::on_returnButton_clicked()
{
this->hide();
emit returnToLogin();
}
```
mainwindow.h
```cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "secondwindow.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void onLoginClicked();
void onReturnToLogin();
private:
Ui::MainWindow *ui;
SecondWindow *secondWindow;
};
#endif // MAINWINDOW_H
```
mainwindow.cpp
```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setFixedSize(800, 600);
secondWindow = new SecondWindow; // 创建另一个窗体
connect(ui->loginButton, &QPushButton::clicked, this, &MainWindow::onLoginClicked);
connect(secondWindow, &SecondWindow::returnToLogin, this, &MainWindow::onReturnToLogin);
}
MainWindow::~MainWindow()
{
delete ui;
delete secondWindow;
}
void MainWindow::onLoginClicked()
{
QString username = ui->usernameEdit->text();
QString password = ui->passwordEdit->text();
if (username == "abc" && password == "123") {
secondWindow->show();
this->hide();
} else {
QMessageBox::warning(this, tr("登录失败"), tr("用户名或密码错误!"), QMessageBox::Ok);
}
}
void MainWindow::onReturnToLogin()
{
this->show();
secondWindow->hide();
}
```
在这个示例代码中,我们为第二个窗口添加了一个名字为“returnToLogin”的信号,用于返回登录界面。在MainWindow的构造函数中,我们连接了这个信号,以便在SecondWindow中点击返回按钮时返回登录界面。同时,我们使用QMessageBox控件来显示错误信息。
希望这个代码示例能对您有所帮助!
阅读全文