3 Star 11 Fork 11

xin-yue / XQt6

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
XQLoginWidget.h 3.81 KB
一键复制 编辑 原始数据 按行查看 历史
xin-yue 提交于 2023-10-26 23:22 . XQLOginWidhet 登录界面修改优化
#ifndef XQLOGINWIDGET_H
#define XQLOGINWIDGET_H
#include"XQWidget.h"
#include"XQHead.h"
#include<QMap>
#include<QIcon>
//登录小部件
class XQLoginWidget :public XQWidget
{
Q_OBJECT
public:
XQLoginWidget(QWidget* parent = nullptr,bool AutoUi=true);
virtual~XQLoginWidget();
struct User//用户信息
{
QPixmap portrait;//头像
QString userName;//用户名/账号
QString password;//密码
bool savePasswordState=false;//记住密码状态
};
public:
//获取头像
QPixmap portrait()const;
//获得用户名
QString currentUserName()const;
//获取用户列表
QStringList userNames()const;
//获取用户
User user(const QString& userName)const;
//获取用户
User user(int index)const;
//获取用户列表
QList<User> users()const;
//获得密码
QString password()const;
//自动登录状态
bool autoLoginState()const;
//记住密码状态
bool savePasswordState()const;
public :
//设置当前用户名
void setCurrentUserName(const QString& name);
//添加一个用户
void addUser(const QPixmap& portrait, const QString& userName, const QString& password = QString(), bool savePassword=true);
void addUser(const QString& userName, const QString& password = QString(), bool savePassword = true);
//删除一个用户
void remove(const QString&userName);
//清空用户列表
void clearUsers();
//设置密码
void setPassword(const QString& password);
//设置头像
void setPortrait(const QPixmap& image=QPixmap(),bool save=true);
//设置自动登录状态
void setAutoLoginState(bool login);
//设置记住密码状态
void setSavePasswordState(bool save);
signals://信号 完成的信号都没有发出的
void login(const QString& account, const QString& password);
//用户名输入框文本改变信号
void userNameChanged(const QString& account);
//密码文本改变信号
void passwordChanged(const QString& account);
//自动登录状态改变
void autoLoginStateChanged(bool login);
//记住密码状态改变
void savePasswordStateChanged(bool save);
//注册账号信号
void registerAccount();
//找回密码信号
void retrievePassword();
protected slots:
//用户单机账号列表切换用户账号 效果实现
void userIndexChanged(int index);
protected://初始化和ui界面
//初始化
void init()override;
//初始化UI
void init_ui()override;
//第一行主要是头像
virtual QBoxLayout* init_oneRow();
//第二行主要是账户输入框
virtual QBoxLayout* init_twoRow();
//第三行主要是密码框
virtual QBoxLayout* init_threeRow();
//第四行主要是多选框和找回密码
virtual QBoxLayout* init_fourRow();
//第五行主要是登录按钮
virtual QBoxLayout* init_fiveRow();
//第六行主要是注册按钮
virtual QBoxLayout* init_sixRow();
protected://事件
//窗口大小改变事件
virtual void resizeEvent(QResizeEvent* event)override;
//窗口关闭事件
virtual void closeEvent(QCloseEvent* event)override;
protected:
//QMap<QString, QString> m_users;//用户列表<用户名,密码> ps:密码不为空切换账号时将勾选记住密码
QSize m_userpassSize = QSize(350, 30);//用户和密码大小
QSize m_btnSize= QSize(90,45);//用户和密码大小
QSize m_loginbtnSize = QSize(350, 50);//登录大小
QPixmap m_portrait;//头像原图
QLabel* m_portraitLabel = nullptr;//头像
QComboBox* m_userNameIn = nullptr;//用户名输入框
QAction* m_userNameAction = nullptr;//用户名输入框的图标动作
QLineEdit* m_passwordIn = nullptr;//密码输入框
QAction* m_passwordAction = nullptr;//密码输入框的图标动作
QCheckBox* m_autoLoginBtn = nullptr;//自动登录按钮
QCheckBox* m_savePasswordBtn = nullptr;//保存密码按钮
QPushButton* m_retrievePasswordBtn = nullptr;//找回密码按钮
QPushButton* m_loginBtn = nullptr;//登录按钮
QPushButton* m_registerBtn = nullptr;//注册按钮
};
#endif
1
https://gitee.com/xin___yue/XQt6.git
git@gitee.com:xin___yue/XQt6.git
xin___yue
XQt6
XQt6
master

搜索帮助