QT登录使用md5加密存储账号密码 当用户登录的时候,通过账号在数据库中查找账号对应的盐值,将盐值和用户输入的密码拿到生成MD5的函数接口输入,然后比对生成的MD5字符串和数据库的MD5字符串是否相同。数据库存储账户、盐值、盐值加账号生成MD5的16进制字符串。如果相同,则判定登录成功,不相同登录失败。
C++实现简单的线程池 因为在Start函数中new了很多个线程,所以这里引入了deque容器对其维护,因为使用了容器,所以使用锁对这个容器维护,因为使用了锁,不妨借用栈的特性加类的构造函数和析构函数的特性。线程部分解决了,接下来是任务部分。留出接口AddTask() 给外部,GetTask()给工作的线程获取线程。这里的思路是先初始化线程池内线程,在Start函数中启动线程池的Run函数,在线程池的run函数内通过while循环让线程不是在工作就是在等待工作的路上。最近在学习音视频的时候,解封装和解码的时候用到了多线程。
C++ 接口类设计 写在前面:这个例子是读《C++代码整洁之道》时学到的。前段时间学习了一下UML图的相关知识,当时不理解接口的作用,读到这个例子后豁然开朗,现在分享给大家。分析:开关不仅仅可以控制电灯,还可以控制风扇,空调。这时候就可以通过接口来实现,代码命名也是战斗力,类和函数的命名仓促了。你有什么好的命名,评论区见。需求:一个开关类,一个灯。使用开关类控制灯的亮灭。如果一个类有开关的功能,那么就继承这个接口。
Qt使用事件过滤器 4、执行完操作后,使用return true,表示事件只执行自定义的操作,这个事件不继续传递。使用return false,表示事件执行完当前自定义的操作后,传递该事件给对应的事件管理器,这个操作会给事件过滤器传递两个参数,一个是Object(某个控件),一个是事件类型。1、应用给事件管理器分发事件,事件管理器根据事件类别将事件发给对应的类。2、事件过滤器在应用和事件管理器之间拦截事件派发给事件管理器的事件,eventFilter函数详细。自己使用事件过滤器的总结。继续执行系统的其他事件。
QTableWidget删除单元格 接着对拿到的数据进行处理。但是因为删除的过程中QTableWidget的视图是动态变化的(本来有两行,先删除第一行,第二行就动态变成了第一行,所以要先删除第二行,再倒过来删除第一行)本文的处理方法是在UI界面提升控件,自己写一个类继承QTableWidget,然后在自己写的从类里面使用public函数返回上面的受保护的虚函数返回的值。因为我使用的QHash是一个无序的排列,所以这里使用了QLIst的sort函数,将其排序,然后倒过来遍历,在遍历中使用removeRow函数,实现了删除行的功能。
QT中如何设置当前界面的背景图片并随着窗口拉伸而刷新 上面设置的label1在widget类的私有变量里设置,因为下面重写拉伸事件要操作这个label1。重写鼠标事件中添加了resize()函数,show函数,实现功能。2、拉伸屏幕的时候会触发什么事件。1、为当前主窗口设置背景图片。3、如何刷新当前界面。
QT中使用moveToThread让任务在子线程中进行 因为moveToThread是QObject类的函数,所以定义任务对象的类的时候,要让该类继承自QObject函数,继承其moveToThread函数。4、使用信号和槽,连接任务对象的任务处理函数。注意,第二个函数的主体是任务处理对象。3、QThread 生成的线程对象调用run函数,开启线程。5、如何释放该线程资源,还不清楚。1、使用QThread生成一个线程对象。2、任务对象moveToThread。
嵌入式Linux平台下QT旋转屏幕 参考原文链接:https://blog.csdn.net/chen9807/article/details/116521928。QT在最后的main函数中添加这段代码即可实现屏幕旋转,调整旋转角度,屏幕尺寸,适配你的开发环境。下面是我的实际运用。