自学内容网 自学内容网

QT作业3

作业:
1】思维导图
2】在登录界面的登录取消按钮进行以下设置:
使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数
将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,弹出另一个界面。如果匹配失败,则输出登录失败,并将密码框中的内容清空
3】自己完成一个使用qss的登陆窗口界面【资源文件的添加、qss语法】

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

// 定义 Widget 类,继承自 QWidget
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr); // 构造函数
    ~Widget(); // 析构函数

signals: // 信号声明区
    void my_signal(); // 自定义信号,用于通知登录成功后打开新界面

public slots: // 槽函数声明区
    void close_slot(); // 自定义槽函数,用于关闭窗口
    void onLoginButtonClicked(); // 自定义槽函数,用于处理登录按钮点击事件

private:
    Ui::Widget *ui; // UI 成员变量
    QPushButton *btn3; // 示例按钮指针(未使用)
};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"

// Widget 类构造函数
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this); // 设置 UI

    // 设置窗口无边框和背景透明
    this->setWindowFlag(Qt::FramelessWindowHint);
    this->setAttribute(Qt::WA_TranslucentBackground);

    // 连接关闭按钮的点击信号到自定义槽函数(基于 Qt4 的连接方式)
    connect(ui->closeBut, SIGNAL(clicked()), this, SLOT(my_slot()));

    // 连接登录按钮的点击信号到自定义槽函数
    connect(ui->pushButton, &QPushButton::clicked, this, &Widget::onLoginButtonClicked);
}

// Widget 类析构函数,释放 UI 资源
Widget::~Widget()
{
    delete ui;
}

// 自定义槽函数:关闭窗口
void Widget::close_slot()
{
    this->close(); // 关闭窗口
}

// 自定义槽函数:处理登录按钮点击事件
void Widget::onLoginButtonClicked()
{
    QString username = ui->lineEdit->text();       // 获取账号输入框的文本
    QString password = ui->lineEdit_2->text();     // 获取密码输入框的文本

    if (username == "zhang" && password == "123456") // 判断账号和密码是否匹配
    {
        qDebug() << "登录成功"; // 输出登录成功信息
        this->close(); // 关闭当前界面

        // 触发自定义信号,通知其他组件
        emit my_signal();
    }
    else
    {
        qDebug() << "登录失败"; // 输出登录失败信息
        ui->lineEdit_2->clear(); // 清空密码输入框
    }
}

form.cpp

#include "form.h"
#include "ui_form.h"

// Form 类构造函数
Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui->setupUi(this); // 设置 UI
}

// Form 类析构函数,释放 UI 资源
Form::~Form()
{
    delete ui;
}

// 槽函数:显示当前窗口
void Form::jump_slot()
{
    this->show(); // 显示窗口
}

form.h

#ifndef FORM_H
#define FORM_H

#include <QWidget>

// 使用 Ui 命名空间
namespace Ui {
class Form;
}

// 定义 Form 类,继承自 QWidget
class Form : public QWidget
{
    Q_OBJECT

public:
    explicit Form(QWidget *parent = nullptr); // 构造函数
    ~Form(); // 析构函数

public slots:
    void jump_slot(); // 槽函数,用于显示窗口

private:
    Ui::Form *ui; // UI 成员变量
};

#endif // FORM_H


原文地址:https://blog.csdn.net/2201_75783063/article/details/144793484

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!