Qt实现验证码功能控件
效果图:
原理
随机挑选数字或者字母,随机选取颜色,通过绘制实现数字和字母验证码以及背景噪点
核心代码
//随机获取验证码数字和字母
QString Verification::getVerificationCodeByRand()
{QString destCode = QString();for (int i = 0; i < m_codeNum; i++) {int flag = qrand() % 2;if (0 == flag) {int c = '0' + qrand() % 10;destCode += static_cast<QChar>(c);}else {int c = (qrand() % 2) ? 'a' : 'A';destCode += static_cast<QChar>(c + qrand() % 26);}}return destCode;
}//随机获取颜色
Qt::GlobalColor * Verification::getColors()
{static Qt::GlobalColor colors[4];for (int i = 0; i < 4; i++){colors[i] = static_cast<Qt::GlobalColor>(2 + qrand() % 16);}return colors;
}//绘制
void Verification::paintEvent(QPaintEvent * event)
{QPainter painter(this);//填充验证码绘制矩形painter.fillRect(0, 0, 100, 30, QColor(255, 250, 240));painter.setFont(QFont("Comic Sans MS", 12));//绘制验证码for (int i = 0; i < m_codeNum; i++){painter.setPen(m_colors[i]);painter.drawText(25 * i, 0, 25, 30, Qt::AlignCenter, QString(m_verificationCode[i]));}//绘制噪点if (m_bstyle == BackgroundStyle::E_DOT)paintDot(&painter);
}//绘制噪点
void Verification::paintDot(QPainter * painter)
{if (Q_NULLPTR == painter)return;//绘制噪点for (int i = 0; i < 150; i++){painter->setPen(m_colors[i % 4]);painter->drawPoint(qrand() % 99, qrand() % 29);}
}
源码传送门
Qt实现验证码功能控件相关推荐
- Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分 ...
- VS+QT开发Ocx/ActiveX控件 一
VS+QT开发Ocx/ActiveX控件 一 VS+QT开发Ocx/ActiveX控件-------网页中全屏 二 QT开发ActiveX控件 一:所用IDE版本,需用管理员权限 二:创建Active ...
- 一个自定义的安卓验证码输入框控件、银行卡归属类型查询
一个自定义的安卓验证码输入框控件.银行卡归属类型查询. GitHub:https://github.com/longer96/VerifyCode Dependency Gradle dependen ...
- 自定义验证码输入控件
控件代码深度参考了掘金文章 Android仿滴滴出行验证码输入框效果,增加了 setText() 方法 控件采用多个横向排列的 EditText 组合控件来实现验证码录入框. 自定义属性文件 attr ...
- QT QSpinBox 整数计数器控件 使用详解
本文详细的介绍了QSpinBox控件的各种操作,例如:获取数值.设置前后缀.设置最大/小值.进制转换.关联信号槽.优化信号.QSS优化.文件源码.样式表 .效果:可以设置背景.边框.向上按钮.向下按钮 ...
- linux qt 打印预览控件,Qt实现保存、浏览、预览、打印功能的示例代码
Qt提供了以文本.图片.HTML等方式来实现对文档的操作,主要用到了QPrinter类和QPainter类,用到了QFileDialog文件窗口.QPrintPreviewDialog预览窗口类和QP ...
- Qt笔记 之 QListWidget控件的使用
Qt提供QListWidget类列表框控件用来加载并显示多个列表项.QListWidgetItem类就是列表项类.一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加的列表项,比如音乐播放器 ...
- Qt 实现自定义Ui控件例子,以自定义的Slider为例(QWidget)
说明 Qt可以比较方便地实现自定义控件在Qt Creator中使用.网上也有很多大神的控件可以使用,但是如果想要自己简单定制也可以按照这个流程. 本文的要点: [1]如何实现一个自定义控件? 本文使用 ...
- qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程
1.概述 QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己 ...
最新文章
- BCH开发Cashscript语言,可构建自主决策交易特定方案
- Redis数据库的应用场景介绍
- 【c#】RabbitMQ学习文档(一)Hello World
- 顶会论文看不懂?阿里巴巴技术专家为你全方位解读!
- 快速正确的修改变量的命名和如何正确规范的注释
- 从俄罗斯方块到星际2,全都用得上:DeepMind无监督分割大法,为游戏而生
- python中options类_python命令行参数解析OptionParser类用法实例
- CodeSmith 介绍
- UVa-11137 Ingenuous Cubrency
- pyodbc mysql_pyodbc and mySQL
- Xbox360 手柄通过网络远程控制树莓派
- vue+高德离线地图vue-amap开发
- 【CTA】CTA认证要求打开日历时提示联系人权限确认
- JXL开发Excel文档中文教程
- 数字化转型的趋势、挑战与战略
- 基于c#条码打印软件源代码 可选择打印机,可选择标签
- java 外文翻译_计算机 java 外文翻译 外文文献 英文文献
- java并行任务,Java 并发编程学习(五):批量并行执行任务的两种方式
- 代码制作数字流星雨_用C语言编写流星雨程序
- 【开发/调试工具】【Windows】嵌入式程序员常用工具类软件/网址一览