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)!