QT基础实践之QQ登录界面

文章目录

  • QQ登录界面
    • 源码分享
    • 演示图
    • 代码分析

QQ登录界面

源码分享

链接:https://pan.baidu.com/s/1v_J4WQjZoSAoMrIpx88PbA
提取码:qwer
记得把图片放入Debug文件

演示图

QT基础实践之QQ登录界面_第1张图片

代码分析

已注释 较为详细
widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include 
#include 
#include 
#include 
#include 
#include 


class Widget : public QWidget
{
    Q_OBJECT

public:
    //头像
    QLabel *tx;

    //行编辑框
    QLineEdit *put1;
    QLineEdit *put2;

    //单选按钮
    QRadioButton *P1;

    //登录
    QPushButton *DL;

    //扫码登录,更多选项
    QPushButton *X1;
    QPushButton *X2;

    //显示密码
    QCheckBox *Xs;

    Widget(QWidget *parent = nullptr);
    ~Widget();
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //网格布局
    QGridLayout *QQ = new QGridLayout ;

    //设置背景
     this->resize(200,380);
     QPalette pa(this->palette());//创建一个QPalette对象pa,并使用当前窗口部件的调色板(palette)作为构造函数的参数。QPalette用于定义窗口部件的颜色和背景。
     QImage img = QImage("jm.png");//创建图片
     img = img.scaled(this->size());//设置图片大小与界面匹配
     QBrush *pic = new QBrush(img);//创建一个QBrush对象pic,并使用缩放后的图像img作为构造函数的参数。QBrush用于绘制背景。
     pa.setBrush(QPalette::Window, *pic);//将pic设置为QPalette的背景刷子(QBrush),并将其应用于窗口的背景,即将窗口的背景刷子设置为pic。
     this->setAutoFillBackground(true);//启用窗口自动填充背景的功能,以确保窗口能够显示背景。
     this->setPalette(pa);//将之前处理好的QPalette对象pa应用于当前窗口部件,即将窗口的调色板设置为pa,从而实现背景的设定。

     //头像
     tx = new QLabel("头像");
     tx->setScaledContents(true);        //设置标签自动缩放上面的图片
     tx->setPixmap(QPixmap("qq.png"));    //标签显示图片
     tx->setFixedSize(120, 120);

     //密码输入
     put1 = new QLineEdit;
     put1->setPlaceholderText(QStringLiteral("QQ号码/手机/邮箱"));
     put2 = new QLineEdit;
     put2->setPlaceholderText(QStringLiteral("输入QQ密码"));

     //知悉
     P1 = new QRadioButton("已阅读并同意服务协议和QQ隐私保护指引");

     //登录
     DL = new QPushButton("登录");
     DL->setMinimumSize(50, 50);
     DL->setStyleSheet("QPushButton{font:13px;");
     DL->setStyleSheet("color: rgb(255, 255, 255); background-color: rgb(166, 219, 254);");


     //扫码登录,更多选项
     X1 = new QPushButton("扫码登陆");
     X1->setMinimumSize(30, 30);      //设置最小尺寸
     X1->setFlat(true);                 //设置无边框
     X2 = new QPushButton("更多选项");
     X2->setMinimumSize(30, 30);      //设置最小尺寸
     X2->setFlat(true);

     //显示密码
     Xs = new QCheckBox("显示密码");
     put2->setEchoMode(QLineEdit::Password);
     connect(Xs, &QCheckBox::clicked, [&](bool x){
         put2->setEchoMode(x?QLineEdit::Normal:QLineEdit::Password);
     });


    QQ->addWidget(tx,0,1,2,2,Qt::AlignHCenter | Qt::AlignVCenter);
    QQ->addWidget(put1,1,1,1,3);
    QQ->addWidget(put2,2,1,1,3);
    QQ->addWidget(Xs,2,2,1,2,Qt::AlignRight | Qt::AlignVCenter);
    QQ->addWidget(P1,4,1,1,2);
    QQ->addWidget(DL,5,1,1,4);
    QQ->addWidget(X1,6,1,1,1);
    QQ->addWidget(X2,6,2,1,1);
    this->setWindowTitle("QQ");
    setLayout(QQ);


}

Widget::~Widget()
{
}


你可能感兴趣的:(qt,java,数据库)