2023.04.26 QT 制作登录界面

一、代码部分

1. 头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QDebug>
#include <QMessageBox>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_cancelBtn_clicked();   //取消按钮对应的槽函数

    void my_slot();

private:
    Ui::Widget *ui;

    QLabel *l1;         //标签1,设置上方背景图
    QLabel *l2;         //标签2,用户名图标
    QLabel *l3;         //标签3,密码图标

    QLineEdit *le1;     //编辑器1,输入用户名
    QLineEdit *le2;     //编辑器2,输入密码

    QPushButton *b1;    //按钮1,登录
    QPushButton *b2;    //按钮2,取消
};
#endif // WIDGET_H

2. 源文件

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //登录界面相关设置
    this->setFixedSize(540,375);    //设置界面为固定大小
    this->setWindowTitle("MIAO");   //设置标题
    this->setWindowIcon(QIcon(":/cat/login.webp")); //设置窗口图标

    //标签相关设置(背景,用户,密码图标)
    l1 = new QLabel(this);         //实例化标签,给定父组件
    l1->move(0,0);             //设置标签位置
    l1->resize(540,170);        //设置标签尺寸
    l1->setScaledContents(true); //设置图片自适应标签大小
    l1->setPixmap(QPixmap(":/cat/logo.webp"));//设置图片
    l2 = new QLabel(this);
    l2->move(115,200);
    l2->resize(30,30);
    l2->setScaledContents(true);
    l2->setPixmap(QPixmap(":/cat/user.jpg"));
    l3 = new QLabel(this);
    l3->move(115,250);
    l3->resize(30,30);
    l3->setScaledContents(true);
    l3->setPixmap(QPixmap(":/cat/passwd.png"));

    //编辑器相关设置(用户,密码输入)
    le1 = new QLineEdit(this);     //实例化标签,给定父组件
    le1->move(150,200);             //设置编辑器位置
    le1->resize(280,35);          //设置编辑器大小
    le1->setPlaceholderText("用户名/账号/邮箱");  //设置占位文本
    le2 = new QLineEdit(this);
    le2->move(150,250);
    le2->resize(280,35);
    le2->setPlaceholderText("密码");
    le2->setEchoMode(QLineEdit::Password); //设置密文模式

    //按钮相关设置(登录,取消)
    b1 = new QPushButton("登录",this);    //实例化按钮,给定文本内容和父组件
    b1->move(240,300);              //设置按钮位置
    b1->resize(80,30);          //设置尺寸
    b2 = new QPushButton("取消",this);
    b2->move(350,300);
    b2->resize(80,30);

    //将按钮1的clicked信号,连接到自定义的槽函数中
    connect(b1,&QPushButton::clicked,this,&Widget::my_slot);

    //将按钮2的clicked信号,连接到自定义的槽函数中
    connect(b2,&QPushButton::clicked,this,&Widget::on_cancelBtn_clicked);
}

Widget::~Widget()
{
    delete ui;
}
//取消按钮2对应的槽函数
void Widget::on_cancelBtn_clicked()
{
    //属性版本完成
    QMessageBox box(QMessageBox::Question,"询问","您是否确定要退出登录",QMessageBox::Yes|QMessageBox::No);
    int ret = box.exec();    //执行对话框
    if(ret == QMessageBox::Yes)
    {
        this->close();      //关闭框
    }
}
//自定义的处理b1的槽函数
void Widget::my_slot()
{
    if(QString("admin") == le1->text() && QString("123456") == le2->text())
    {
        //使用QMessageBox实例化对象,并调用有参构造
        QMessageBox box(QMessageBox::Information,     //图标
                        "状态",                        //对话框标题
                        "登陆成功",                   //对话框内容
                        QMessageBox::Yes, //对话框提供的按钮
                        this);                          //父组件
        //调用exec使其进入运行状态
        int ret = box.exec();        //定义变量接受用户点击的按钮

        //对按钮进行判断
        if(ret == QMessageBox::Yes)
        {
            this->close();          //关闭登录框
        }
    }
    else
    {
        QMessageBox::StandardButton btn = QMessageBox::critical(this,
                                                                "状态",
                                                                "账号和密码不匹配,是否重新登录",
                                                                QMessageBox::Yes|QMessageBox::No);
        //对用户点击的按钮进行判断
        if(btn == QMessageBox::Yes)
        {
            le2->clear();           //清空密码
        }else if(btn == QMessageBox::No)
        {
            this->close();          //关闭登录框
        }
    }

}

二、运行结果

1. 登录界面

2. 点击取消按钮,弹出一个问题对话框,询问"是否确定要退出登录",给出两个按钮,Yes|No,用户点击Yes后,关闭界面,用户点击No后,继续回到登录界面

3. 当账号和密码(admin,123456)验证失败,则弹出错误对话框,给出信息"账号和密码不匹配,是否重新登录",并给出两个按钮Yes | No,用户点击Yes后,返回到登录界面,并清空密码输入框中的内容。用户点击No后,直接关闭登录界面

3. 点击登录按钮,当账号和密码验证成功,弹出信息对话框,给出信息"登录成功",给出按钮yes,用户点击yes后,发射一个自定义信号后关闭登录界面

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于重新安装 Qt 在 Ubuntu 22.04 上,你可以按照以下步骤进行操作: 1. 首先,确保你的系统已经更新到最新版本。可以使用以下命令进行系统更新: ``` sudo apt update sudo apt upgrade ``` 2. 接下来,你可以通过官方网站下载适用于 Linux 的 Qt 安装程序。请访问 Qt 的官方网站(https://www.qt.io/download)并选择适合你的 Ubuntu 版本的 Qt 版本进行下载。 3. 下载完成后,打开终端并进入到下载的 Qt 安装程序所在的目录。 4. 接下来,给安装程序添加可执行权限。使用以下命令: ``` chmod +x <Qt_Installer_File> ``` 5. 运行安装程序。使用以下命令启动安装向导: ``` ./<Qt_Installer_File> ``` 6. 安装向导会引导你完成安装过程。你可以选择自定义安装选项,例如选择要安装的组件和目标安装路径等。 7. 安装完成后,配置 Qt 的环境变量。打开终端,并在 `~/.bashrc` 文件中添加以下行(假设你的 Qt 安装路径为 `/opt/Qt`): ``` export PATH=/opt/Qt/<version>/gcc_64/bin:$PATH ``` 请注意替换 `<version>` 为你实际安装的 Qt 版本号。 8. 保存并关闭 `~/.bashrc` 文件后,执行以下命令使环境变量生效: ``` source ~/.bashrc ``` 现在,你应该已经成功重新安装了 Qt。你可以使用 `qmake -v` 命令来验证安装是否成功。如果一切正常,该命令应该显示 Qt 的版本信息。 希望这些步骤能帮助到你重新安装 Qt!如果有任何问题,请随时向我咨询。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值