Qt 实现仿QQ登录界面

目录

  • 头文件
  • 源文件
  • 主函数
  • 结果示例

要求:
1、给窗体改变名称并设置窗口图标、尺寸固定
2、中间放log图
3、用户名和密码使用图片完成
4、账户用明文模式,密码用密文模式
5、点击登录后,将界面上的用户名和“admin”比较,密码和“123456”比较,如果匹配成功,则输出登录成功,如果匹配失败,则输出“账户密码不匹配”,并清空密码框(clear)
6、点击取消后,关闭整个界面

头文件

#ifndef WIDGET_H
#define WIDGET_H#include #include 
#include 
#include 
#include #include #include       //包含应用程序的头文件
#include
using namespace std;QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTsignals://声明信号函数的权限void mysignal();    //此时定义了一个无参无返的信号函数public slots://槽函数声明的权限void myslot();    //自定义了一个无参无返的槽函数public:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;
};
#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置固定尺寸this->setFixedSize(420,300);//设置窗口标题this->setWindowTitle("LQS");//设置窗口图标this->setWindowIcon(QIcon("E:\\Learning\\Qt_work\\qt_01\\TIM.png"));//定义一个标签,实例化对象,调用无参构造【背景图片】QLabel *lab0 = new QLabel;lab0->setParent(this);    //设置父组件lab0->resize(420, 100);//    qDebug()<text();     //获取组件的文本信息lab0->setPixmap(QPixmap("E:\\Learning\\Qt_work\\qt_01\\panda.png"));    //设置填充内容为图片lab0->setScaledContents(true);           //设置填充格式,组件内容自适应//定义一个标签,实例化对象,调用无参构造【用户名】QLabel *lab1 = new QLabel;lab1->setParent(this);    //设置父组件lab1->move(100,120);lab1->resize(20, 20);lab1->setText("用户名:");
//    qDebug()<text();     //获取组件的文本信息lab1->setPixmap(QPixmap("E:\\Learning\\Qt_work\\qt_01\\QQ.png"));    //设置填充内容为图片lab1->setScaledContents(true);           //设置填充格式,组件内容自适应//定义一个行编辑器,实例化对象时,使用无参构造
//    QLineEdit *edt1 = new QLineEdit;
//    edt1->setParent(this);         //设置父组件
//    edt1->move(130,120);             //移动
//    edt1->resize(100,20);               //重新设置大小//定义一个标签,实例化对象,给定文本内容和父组件【密码】QLabel *lab2 = new QLabel("密码:", this);lab2->move(100,150);lab2->resize(20, 20);
//    qDebug()<text();     //获取组件的文本信息lab2->setPixmap(QPixmap("E:\\Learning\\Qt_work\\qt_01\\TIM.png"));    //设置填充内容为图片//定义一个行编辑器,实例化对象时,使用有参构造
//    QLineEdit *edt2 = new QLineEdit(this);
//    edt2->move(130,150);
//    edt2->resize(100,20);               //重新设置大小
//    edt2->setEchoMode(QLineEdit::Password);           //设置回显模式//    //登录和取消按钮
//    //定义一个按钮,实例化对象时,顺便指定组件以及文本内容和图标
//    QPushButton *btn1 = new QPushButton("登录", this);
//    btn1->move(120,200);   //移动组件位置
//    btn1->resize(50, 30);     //重新设置按钮的尺寸
//    btn1->setIcon(QIcon("E:\\Learning\\Qt_work\\qt_01\\QQ.png"));     //设置图标
    btn1->setStyleSheet("background-color:red");    //设置按钮颜色//    QPushButton *btn2 = new QPushButton("取消", this);
//    btn2->move(180,200);   //移动组件位置
//    btn2->resize(btn1->size());     //使用btn1的尺寸,给btn3成功新设置尺寸
//    btn2->setIcon(QIcon("E:\\Learning\\Qt_work\\qt_01\\QQ.png"));     //设置图标connect(ui->btn1, &QPushButton::clicked, this, &Widget::myslot);//读取用户名和密码出的文本信息
//    qDebug()<text();     //获取组件的文本信息
//    qDebug()<text();     //获取组件的文本信息}Widget::~Widget()
{delete ui;
}void Widget::myslot()
{if((ui->lab1->text() == "admin") && (ui->lab2->text() == "123456")){
//        cout<<"登陆成功"<cout<<"good"<<endl;}else{
//        cout<<"账户和密码不匹配"<cout<<"no good"<<endl;ui->lab1->clear();ui->lab2->clear();}
}

主函数

#include "widget.h"#include int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

结果示例

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部