使用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(); //退出窗口
        }
    }

}
相关推荐
jimy13 分钟前
bash “ if <command>; then”语句,<command>返回0,then后面语句才执行
开发语言·bash
八年。。8 分钟前
simulink与python联合仿真(一)安装MATLAB引擎
开发语言·python
爱吃KFC的大肥羊17 分钟前
Redis 基础完全指南:从全局命令到五大数据结构
java·开发语言·数据库·c++·redis·后端
Kiri霧27 分钟前
Go 结构体
java·开发语言·golang
沐知全栈开发30 分钟前
《jQuery 密码验证》
开发语言
-大头.32 分钟前
Java泛型实战:类型安全与高效开发
java·开发语言·安全
charlie11451419135 分钟前
现代C++工程实践:简单的IniParser4——实现ini_parser
开发语言·c++·笔记·学习·工程
lsx20240638 分钟前
R 注释:全面指南与最佳实践
开发语言
jimy141 分钟前
ps aux|grep pid 和 ps -p pid 的区别
java·linux·开发语言
西西弗Sisyphus43 分钟前
C++ 实现支持 32 位和 64 位进程的模块枚举
开发语言·c++·操作系统