Qt
文章平均质量分 63
_DCG_
这个作者很懒,什么都没留下…
展开
-
Linux+qt实现界面输入的密码验证
有的时候有这样的情况,在qt实现的界面中输入了当前用户的密码,然后需要对该密码进行验证,找了好半天,有用的信息不多,很多都是一嘴带过,对于实现功能没有实际意义。另外一种是么有界面,需要在命令终端输入密码,实现密码验证。上面的代码中用户密码通过pam_conv结构输入,该结构两个参数,第一个参数是一个回调函数,该函数的大致意思就是定义了获取密码的一些行为方式,具体含义我也不太了解,但是通过自定义该回调函数可以自定义获取密码的方式,对于上面的自定义的函数就是从参数中获取密码。实现密码验证的基于pam模块。原创 2024-04-11 16:53:21 · 457 阅读 · 0 评论 -
基于AES128的加解密方法
网络上有不少介绍利用AES对称加密的方法,要么就是讲述理论,要么就是加密过程比较复杂,本文介绍的一种比较简单的基于Botan的AES数据加密实现方法,侧重于应用,希望能给大家一些帮助和启发。可以通过源码编译也可以通过sudo apt-get install libbotan-2-dev进行安装,本人是通过源码编译安装的。平台:x86+银河麒麟v10 arm+银河麒麟v10。botan版本:Botan-2.19.4。原创 2024-03-30 16:24:51 · 281 阅读 · 0 评论 -
Qt编译报错“munmap_chunk(): invalid pointer”
,很是疑惑,从字面意思上看指针操作有问题,但是经过排查,未发现指针有非法操作,而且现象是调用一个函数,执行完该函数最后一行后崩溃。后面经过确认原来是该函数没有返回值,因为该函数原型是。但是为什么会报这个错误我也搞不太清除。qt工程修改编译后报错信息是“原创 2023-12-09 11:23:46 · 489 阅读 · 0 评论 -
Qt之模块介绍
Qt 是一个强大的跨平台 C++ 框架,它包括了很多核心模块和功能,以支持广泛的应用程序开发。然而,Qt 为了保持核心库的稳定性和性能,并尽量减小库的体积,不会将所有功能都包括在标准库中。相反,Qt 使用模块化的方法,允许开发者根据自己的需求选择要包含的模块。总之,Qt 的模块化设计和轻量化方法允许开发者根据需要选择适当的功能,以满足他们的应用程序需求。例如qt提供而来qtmqtt模块,但是该模块并没有加入到标准库中,如有需要,需要从github下载该模块编译后添加到指定位置,然后可以使用,其他模块类似。原创 2023-10-14 17:33:02 · 366 阅读 · 0 评论 -
Qt之submodule编译
通过这个问题我们学到了什么呢?1、系统默认的安装你的qt并不是完整的,有些模块默认并没有安装2、单独编译子模块时,需要执行一些命令将编译qt过程中的一些依赖项安装一下,例如安装qtbase5-private-dev。原创 2023-10-14 15:58:11 · 1378 阅读 · 0 评论 -
Qt之元对象metaObject
什么是元对象昂?在qt中元对象就是可以描述其它对象结构的对象,例如获取其它对象类的名称,一个对象下有多少成员函数,有哪些属性等。元对象的类QMetaObject。原创 2023-09-10 16:56:12 · 309 阅读 · 0 评论 -
Qt之信号槽的理解
本篇文章就是视图来解答上面的疑问。我们在qt中有太多的地方使用信号槽机制来实现我们功能,但是有没有仔细考虑过信号槽机制的原理呢?receiver:表示的是接受者对象的指针,类型同样是QObject*method:表示的是接收者的槽函数名称,类型是const char*signal:表示的是发送者发送的信号,类型是const char*sender:表示的是发送者对象的指针,类型是QObject*原创 2023-09-10 16:41:10 · 527 阅读 · 0 评论 -
Qt之sendEvent
该方法的作用同样也是发布事件,但是与postEvent不同的是该方法仅能用本线程内的事件发送,不能用于跨线程的事件发布。原创 2023-09-10 14:34:57 · 569 阅读 · 0 评论 -
Qt之postEvent
该方法的作用是将要发送的事件推送到对应线程的事件队列中,用于后续的事件循环(关于事件循环相关内容,请到本专栏中对应文章中去看)。原创 2023-09-10 14:17:31 · 914 阅读 · 0 评论 -
qt之事件循环与线程的关系
事件循环与线程密不可分,虽然在一个线程中可以启动多个事件循环,但是这些事件循环共享同一个threadData,也就是说在一个线程内无论启动多少个事件循环,他们操作的是都是同一个事件调度器,并不会因为启动多个事件队列,而导致别的事件队列无法接收数据。事件循环的本质就是将事件队列中的事件一一发送到本线程中的各个对象中进行处理每个QObject对象都是线程相关的,每个QObject对象都存在一个threadData成员,这个成员包含了这个对象所属的线程信息。原创 2023-09-10 12:43:32 · 549 阅读 · 0 评论 -
qt之movetothread理解
每个qobject对象在创建时都有包含线程成员,threaddata,该成员的类型是QThreadData,该成员与qobject对象的父对象保持一致,若父对象不存在,则取当前线程的值为该成员赋值。原创 2023-09-08 15:46:29 · 811 阅读 · 0 评论 -
deleteLater函数使用
deleteLater是QObject的成员函数,用于延迟删除QOjbect对象,对于以Qobject为基类的对象推荐使用deleteLater而非delete。deleteLater作用的对象必须是以QObject对象为基类的。并且类的声明中包含Q_OBJECT宏。因为其本质是在deleteLater的实现中发送了事件,要删除的对象接收该事件后再进行删除动作。事件名称为DeferrerDelete,原理如下:.......break;原创 2023-09-08 11:14:17 · 283 阅读 · 0 评论 -
Qt下SVG格式图片应用
svg格式图片又称矢量图,该种格式的图片不同于png等格式的图片,采用的并不是位图的形式来组织图片,而是采用线条等组织图片,svg格式是图片的文件格式是xml,可以通过文件编译器打开查看svg格式内容。svg格式的图片的特点是支持图片的放大和缩小,当图片放大和缩小时清晰度不会发生变化,相比于普通的png和jpg等格式的图片,当图片进行放大时就会产生拉伸效果或者不清楚的情况,对于svg格式的图片则存在这种情况。见图2图1图2。原创 2023-09-06 15:25:59 · 1263 阅读 · 0 评论 -
qt之模态窗口
exec:dialog调用exec接口会触发模态窗口,show:dialog调用show接口触发模态还是非模态状态与dialog的Modal状态有关,默认情况下dialog是非模态,此时调用show该窗口就是非模态,若是调用setModal接口设置模态为true,此时调用show就是模态窗口。原创 2023-09-01 20:56:08 · 960 阅读 · 0 评论 -
Qvirtualkeyboard使用及相关知识点
环境介绍:x86+银河麒麟v10 arm+银河麒麟v10需求分析:在arm平台上(一个平板)运行qt程序需要使用软键盘,不会配置键盘和鼠标,故需要使用软键盘。原创 2023-09-01 20:39:37 · 2500 阅读 · 5 评论 -
qt 依赖第三库编译链接注意事项
上述这两种方式本质上一样的,都需要告诉编译器依赖的头文件和库文件的位置。如果基于qt框架进行软件开发的话,那么不可避免的会使用到第三方库,这时候很多朋友会有这种疑问,如何编写pro文件,能够使编译链接顺利完成呢?原创 2023-09-27 18:02:28 · 161 阅读 · 0 评论 -
qt5.15.2 交叉编译总结
最近项目需要,qt源码需要交叉编译,以前对这块不是很熟悉,从开始的一脸懵逼到最终成功编译出qt源码库,还是有了很多收获,分享给大家,希望对大家有所帮助。原创 2023-07-27 21:53:34 · 4741 阅读 · 0 评论 -
Qt多线程详解
此种方式的思想是创建一个对象,对象中包含一些方法,这些方法可以绑定到不同的线程,实现了通过一个对象可以包含多个线程函数的方法。QThread类的run函数默认为开启exec(事件循环),如果采用第一种方式的话重写run函数的方法则不会开启事件循环。答:run函数(线程函数)执行完毕后,线程就会退出,如果run函数是一个死循环,则线程不会退出。通过上面的代码可以看到start方法的调用触发了run函数的调用。,并且此种方式仅能通过信号槽的方式来触发对象的函数执行,此种方式实现多线程的思想与第一种不一样,原创 2023-06-03 20:40:31 · 566 阅读 · 0 评论 -
QStatusbar使用方法
qstatusbar控件基本介绍和使用方法原创 2023-03-31 11:03:54 · 1427 阅读 · 0 评论 -
Qt布局相关知识点
qt中布局管理器一些基础知识点,总结一些比较容易混淆的知识点。原创 2023-05-22 10:07:41 · 77 阅读 · 0 评论 -
Qt 基本概念理解
回答了三个问题:1、qt跨平台如何理解2、qt是否支持交叉编译及方法3、.qmake.cache的理解原创 2023-05-05 15:59:47 · 886 阅读 · 0 评论 -
Qt QWidget设置样式表没有生效
相信大家都注意到了这样一种情况,通过Qt Creator的UI Designer中拖拽设计ui,选择以QWidget为基类重新设计一个ui文件,那么在这种情况下这个ui文件就没有直接的父窗口,在UI文件中对设置样式表,在UI Designer中样式表生效了,然后运行程序后,发现该页面对应的对象样式表并没有生效,这是什么情况呢?原创 2023-04-17 18:05:32 · 1188 阅读 · 0 评论 -
Qt 控件设置透明和半透明方法汇总
遇到了好多次控件有需要设置为透明和半透明的情况,每次都是去网上搜一搜,看看别人怎么实现的,浪费了很多时间,故在这里进行一个总结,希望对自己有一个提升。看文字也是看的一脸懵逼,这里通过表格的方式再做进一步的阐述。原创 2023-04-17 17:55:29 · 11498 阅读 · 1 评论 -
QT 自定义类发送信号时报错“ error: undefined reference to ...”
信号槽机制依赖Q_OBJECT宏原创 2023-04-13 10:26:21 · 1196 阅读 · 2 评论 -
QVector中使用contains的注意事项
Qvector使用基础知识原创 2023-04-12 14:54:10 · 552 阅读 · 2 评论 -
QPainter使用方法总结
Qpainter使用方法总结原创 2023-04-07 10:35:13 · 984 阅读 · 0 评论 -
Qt QWidget::render介绍及使用方法
介绍render的功能和使用方法原创 2023-04-06 16:57:20 · 1722 阅读 · 0 评论 -
qt源码调试
该文主要目的是帮助qt开发者进行源码调试,解决问题。原创 2023-01-30 15:16:12 · 496 阅读 · 0 评论 -
Printf在linux下无法打印情况解决方法
关于qtcreator调试控制台程序使用printf打印不显示问题,主要原因是缓存原因,有全缓冲,行缓冲,无缓冲,如无特殊操作(fflush(stdout))全缓冲只有达到当前缓冲区大小才会输出,行缓冲则会在接受到\n换行符时输出,无缓冲则是有什么输出什么,网上看到关于该问题的解决方法都是调用fflush进行刷新,这种对于有较多地方那个需要打印比较麻烦,所以根据原理在main函数入口设置标准输出为行缓冲或者无缓冲这样就是实时打印信息了(标准错误一样)原创 2022-12-08 14:55:02 · 2055 阅读 · 0 评论 -
QSettings用法理解
对于QSettings类的用法和理解,网络上有很多讲解,这主要把自己用到QSettings类遇到的问题或者难以理解的部分进行标记。首次使用该类时,通过看帮助文档或者其他文章,最大的疑惑是QSettings类的构造函数中有的需要填写"organization"和"applicationname",这两个的意义是什么?直观上看并没有感觉有什么作用。但是这种观点是错误的,这两项是存储到注册表时的标识,通过这两项的名称,qt存储配置时决定了配置文件的路径信息。通过查阅,原来QSettings类有两种用法:1、通过N原创 2022-12-07 20:27:51 · 600 阅读 · 0 评论