众意网站建设zyecn,wordpress sina,wordpress 上传文件路径,钓鱼网站制作教程视频上一篇设计了登录和聊天窗口#xff0c;并实现了窗口切换#xff0c;本章将继续实现其他模块
本章内容
完善登录验证实现自定义窗口的拖动效果
完善登录验证
对登录的输入框进行输入限定#xff0c;这里我限制登录id为6位纯数字组合#xff0c;密码长度不超过16位 设置…上一篇设计了登录和聊天窗口并实现了窗口切换本章将继续实现其他模块
本章内容
完善登录验证实现自定义窗口的拖动效果
完善登录验证
对登录的输入框进行输入限定这里我限制登录id为6位纯数字组合密码长度不超过16位 设置代码我放在了构造函数里
LoginWindow::LoginWindow(QWidget *parent): QWidget(parent)
{ui.setupUi(this);connectSlots();//设置输入框的限制QRegExp rx([1-9][0-9]{5}); //不超过6位的纯数字idQRegExpValidator *pReg new QRegExpValidator(rx, this);ui.lineEditUserID-setValidator(pReg);ui.lineEditPassword-setMaxLength(16); //设置密码最大长度16
}在登录按钮点击后校验ID长度是否合法不合法则进行提示
//登录按钮点击事件
void LoginWindow::slotLoginBtnClicked()
{//获取用户输入QString strID ui.lineEditUserID-text();if (strID.size() ! 6){QToolTip::showText(QCursor::pos(), QString::fromLocal8Bit(ID输入有误));return;}//验证账户有效性//关闭登录界面(调用关闭函数)slotCloseBtnClicked();//发送成功的信号emit signalLoginOK();
}相关头文件
#include QRegExp
#include QToolTip实现自定义窗口的拖动效果
新建一个窗口移动的类 MoveWindow,继承QWidget并重写鼠标移动事件 大致代码
class MoveWindow : public QWidget
{Q_OBJECTpublic:explicit MoveWindow(QWidget *parent Q_NULLPTR);protected:/*** brief 鼠标按下准备拖动窗体* param event*/void mousePressEvent(QMouseEvent *event);/*** brief 鼠标移动处理窗体拖动* param event*/void mouseMoveEvent(QMouseEvent *event);/*** brief 释放鼠标* param event*/void mouseReleaseEvent(QMouseEvent *event);/*** brief 获取可拖动控件必须由子类指定* return*/virtual QWidget*getDragnWidget() 0;/*** brief 判断鼠标点击的位置是否进入可拖动区域* param widget 可拖动控件位置* param point 鼠标点击位置* return*/bool isPointInDragnWidget(const QWidget*widget, const QPoint point);/*** brief 标志是否移动窗体*/bool isMove;/*** brief 鼠标按下去的点*/QPoint pressedPoint;
};修改LoginWindow和ChatWindow父类为MoveWindow
.h
class LoginWindow : public MoveWindow
{Q_OBJECTpublic:LoginWindow(QWidget *parent nullptr);~LoginWindow();.cpp
LoginWindow::LoginWindow(QWidget *parent): MoveWindow(parent)
{ui.setupUi(this);同时实现基类中的虚函数 getDragnWidget()
protected:QWidget* getDragnWidget();QWidget * LoginWindow::getDragnWidget()
{return this;
}关于这里可以 参考我的另一篇博客自定窗口的拖动
具体的实现根据自己的需要进行调整不用照搬