目录
一:无边框和背景透明显示 效果展示
核心源码,如下注释处
二:完整源码分享
#include "widget.h"
#include<QDebug> //输出头文件
#include"indexwin.h" //主界面窗口
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//窗口大小设置
this->resize(500,400);
setWindowFlags(Qt::FramelessWindowHint);//无边框
setAttribute(Qt::WA_TranslucentBackground);//背景透明
//创建对象
loginBtn = new QPushButton(this);
userEdit = new QLineEdit(this);
pwdEdit = new QLineEdit(this);
logoLab = new QLabel(this);
userLab = new QLabel(this);
pwdLab = new QLabel(this);
loginLab = new QLabel(this);
gifLab = new QLabel(this);
gifLab->resize(100,100); //动态图文本大小
movie = new QMovie("image/0505.gif"); //创建对象-动态图选择
gifLab->setMovie(movie); //放置动态图
movie->start(); //动态图显示
// loginBtn->setText("登录");
//登录按钮的起始位置,宽高设置
loginBtn->setGeometry(200,200,100,50);
//在登录按钮中放置图片
loginBtn->setIcon(QIcon(QPixmap(":/image/050302.png")));
//图片自适应按钮大小
loginBtn->setIconSize(QSize(100,50));
//userEdit->setGeometry(200,100,250,20);
//pwdEdit->setGeometry(200,150,250,20);
//用户编辑框起始位置
userEdit->move(200,100);
//用户编辑框提示内容信息
userEdit->setPlaceholderText("请输入用户名");
//用户编辑框设置输入长度
userEdit->setMaxLength(11);
//密码编辑框起始位置
pwdEdit->move(200,150);
//密码编辑框提示内容信息
pwdEdit->setPlaceholderText("请输入密码");
//密码编辑框设置输入长度
pwdEdit->setMaxLength(8);
//密码编辑框设置输入内容密文显示
pwdEdit->setEchoMode(QLineEdit::Password);
//logo文本大小
//logoLab->resize(100,50);
//放置logo图片到logoLab文本中
//logoLab->setPixmap(QPixmap(":/image/050301.png").scaled(logoLab->size()));
//用户名文本起始位置
userLab->move(100,100);
//用户名文本内容
userLab->setText("用户名");
//密码文本起始位置
pwdLab->move(100,150);
//密码文本内容
pwdLab->setText("密码");
//登录文本位置
loginLab->move(250,40);
//登录文本内容
loginLab->setText("登录界面");
//按钮点击让窗口关闭
//connect(loginBtn,SIGNAL(clicked(bool)),this,SLOT(close()));
//点击按钮跳转主界面
connect(loginBtn,SIGNAL(clicked(bool)),this,SLOT(goLoginSlot()));
}
Widget::~Widget()
{
}
void Widget::goLoginSlot()
{
qDebug()<<"点击登录";
//获取 编辑框内容
QString username = userEdit->text();
qDebug()<<username;
//字符串形式toLatin1转成数组形式
if(strcmp(username.toLatin1(),"admin") == 0)
{
qDebug()<<"登录成功";
IndexWin *p = new IndexWin;
p->show();
this->hide();
}
}