QT实战(1)实现登录框
一、借鉴文章一二、借鉴文章二三、借鉴文章三:实现QQ登录界面
一、借鉴文章一
https://blog.csdn.net/guorong520/article/details/89213769

1.LoginDialog.h
#ifndef LOGINDIALOG_H #define LOGINDIALOG_H#include <QDialog> #include <MoveDialog.h>
#include <QtSql>
#include <SqlOperate.h>
#include <classManage.h>
#include <ChangePassword.h>
#include <Regist.h>
#include <QApplication>
#include <QDir>
#include <QGraphicsDropShadowEffect>
#include "Login.h"
#include "SuperUser.h"
namespace Ui {
class LoginDialog;
}
class LoginDialog : public QDialog
{
Q_OBJECT
public:
explicit LoginDialog(QWidget *parent = 0);
~LoginDialog();
public slots:
void on_btnClose_clicked();
void on_btnZoom_clicked();
void on_btnSafeLogin_clicked();
void on_btnRegist_clicked();
void on_btnFindPassword_clicked();
private slots:
void on_btnRemember_stateChanged(int arg1);
private:
QString m_Username;
QString m_Password;
QString str_1;
QString str_2;
bool m_Remember;
private:
Ui::LoginDialog *ui;
};
#endif // LOGINDIALOG_H
2.LoginDialog.cpp
#include "LoginDialog.h"
#include "ui_LoginDialog.h"
#include <QLineEdit>
#include <QTimer>
#include <QPalette>
#include <QBrush>
#include <QPainter>
#include <QFont>
#include <QMessageBox>
#include <QShortcut>
#include <QKeyEvent>
#include <QMovie>
#include <QSettings>
#include<QDebug>
#pragma execution_character_set("utf-8")
LoginDialog::LoginDialog(QWidget *parent)
:ui(new Ui::LoginDialog)
{
ui->setupUi(this);
setAttribute(Qt::WA_TranslucentBackground);//背景透明
//设置无边框,点击图标栏可放大缩小
setWindowFlags(Qt::Window|Qt::FramelessWindowHint\
|Qt::WindowMinimizeButtonHint|Qt::WindowMaximizeButtonHint);
//设置背景提示
ui->editUsername->setPlaceholderText("请输入账号");
ui->editPassword->setPlaceholderText("请输入密码");
//密码显示黑圆圈
ui->editPassword->setEchoMode(QLineEdit::Password);
//label添加动态图片
QMovie *movie=new QMovie(":/qrc/pig.gif");
ui->labHead->setMovie(movie);
ui->labHead->setScaledContents(true);
movie->start();
//拿到控件的字体属性,设置字间距
QFont font = ui->btnSafeLogin->font();
font.setLetterSpacing(QFont::AbsoluteSpacing ,15);
ui->btnSafeLogin->setFont(font);
//鼠标停留显示提示
ui->btnClose->setToolTip("关闭");
ui->btnZoom->setToolTip("最小化");
//记住密码功能:读取配置文件
QSettings setting("userInfo/config.ini",QSettings::IniFormat);
m_Username = setting.value("Login/userName").toString();
ui->editUsername->setText(m_Username);
m_Password = setting.value("Login/passWord").toString();
ui->editPassword->setText(m_Password);
m_Remember = setting.value("Login/remeber").toBool();
//上次勾选,则初始化为已勾选,否则不设置
if(m_Remember)
{
ui->btnRemember->setChecked(true);
}
else
{
ui->editPassword->clear();
}
}
LoginDialog::~LoginDialog()
{
delete ui;
}
void LoginDialog::on_btnClose_clicked()
{
this->close();
}
//最小化
void LoginDialog::on_btnZoom_clicked()
{
-
this->setWindowState(Qt::WindowMinimized); -
} -
void LoginDialog::on_btnSafeLogin_clicked() -
{ -
//超级用户 -
SuperUser *superUser = new SuperUser; -
//老师、学生 -
//classManage *classmange = new classManage; -
str_1 = ui->editUsername->text(); -
str_2 = ui->editPassword->text(); -
if(str_1 == Q_NULLPTR) -
{ -
QMessageBox::information(this,"提示","请你输入账号后再登录"); -
} -
else if(str_2 == Q_NULLPTR) -
{ -
QMessageBox::information(this,"提示","请你输入密码后再登录"); -
} -
//人工设置此账号为超级用户 -
if(str_1 == "daboluo" && str_2 == "520803") -
{ -
//存储正确的用户名与密码,并在此写入 -
m_Username = str_1; -
m_Password = str_2; -
on_btnRemember_stateChanged(1); -
this->close(); -
superUser->exec(); -
} -
} -
void LoginDialog::on_btnRegist_clicked() -
{ -
} -
void LoginDialog::on_btnFindPassword_clicked() -
{ -
} -
//在登录框中检测是否点击记住密码 -
void LoginDialog::on_btnRemember_stateChanged(int arg1) -
{ -
QString binPath = QDir::currentPath(); -
qDebug()<<"LoginDialog:147 "<<binPath; -
//勾选进行存储 -
if(arg1=ui->btnRemember->isChecked()) -
{ -
QSettings setting("userInfo/config.ini",QSettings::IniFormat);//读配置文件 -
setting.beginGroup(tr("Login")); -
setting.setValue("userName",m_Username);//设置key和value,也就是参数和值 -
setting.setValue("passWord",m_Password); -
setting.setValue("remeber",true); -
setting.endGroup();//节点结束 -
qDebug()<<"记住密码"; -
} -
//不勾选进行标记,下次打开后也不勾选 -
else -
{ -
QSettings setting("userInfo/config.ini",QSettings::IniFormat);//读配置文件 -
setting.beginGroup(tr("Login")); -
setting.setValue("remeber",false); -
setting.endGroup();//节点结束 -
qDebug()<<"不记住密码"; -
} -
}
二、借鉴文章二
三、借鉴文章三:实现QQ登录界面
更多推荐
所有评论(0)