使用QT编写一个简单QQ登录界面

widget.cpp

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

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

    //设置窗口标题
    this->setWindowTitle("QQ");
    //设置窗口图标
    this->setWindowIcon(QIcon(":/pictrue/QQ123.png"));
    QMovie *mv=new QMovie(":/pictrue/plane.gif"); //创建一个动图
    ui->label->setMovie(mv); //将动图插入标签
    mv->start(); //启动动图
    ui->label->setScaledContents(true); //让动图自适应标签大小
    ui->userLabel->setPixmap(QPixmap(":/pictrue/user.png")); //设置标签显示图片
    ui->userLabel->setScaledContents(true); //让图片自适应标签大小
    ui->passwdLabel->setPixmap(QPixmap(":/pictrue/passwd.jpg"));//设置标签显示图片
    ui->passwdLabel->setScaledContents(true); //让图片自适应标签大小
    ui->passwdEdit->setEchoMode(QLineEdit::Password); //设置行编辑器显示模式为Password

}

Widget::~Widget()
{
    delete ui;
}


//登录按钮的槽函数实现
void Widget::on_loginBtn_clicked()
{

    if(ui->userEdit->text().isEmpty() || ui->passwdEdit->text().isEmpty())
    {
         QMessageBox::information(this,"登录","请将登录信息填写完整!");
         return;
    }

    /*账号密码匹配*/
    if(ui->userEdit->text()=="admin" && ui->passwdEdit->text()=="123456")
    {
        QMessageBox::information(this,"登录","登录成功");
        emit this->loginSuccess_signal(); //触发登录成功信号
        this->close(); //退出窗口
    }
    else/*账号密码不匹配*/
    {
        QMessageBox msg(QMessageBox::Critical,"登录","账号和密码不匹配,是否重新登录",
                        QMessageBox::Yes|QMessageBox::No,this );

        int ret= msg.exec(); //调用exec弹出对话框
        /*判断用户选中的按钮*/
        if(ret==QMessageBox::Yes)
        {
            ui->passwdEdit->setText(""); //将密码文本清空
        }else if(ret==QMessageBox::No)
        {
            this->close(); //退出窗口
        }
    }

}
相关推荐
2601_966949651 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin1 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
滕州市燕猫虎计算机科技工作室个体工商户2 小时前
Java锁
java·开发语言
多加点辣也没关系2 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2332 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean21032 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客3 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
新时代牛马4 小时前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位
android·开发语言·python·kotlin
三8444 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker
IvanCodes5 小时前
Python 基础语法(七):推导式与常见遍历写法
开发语言·python