- 博客(202)
- 资源 (2)
- 问答 (3)
- 收藏
- 关注
原创 QMetaObject调用对象函数
使用QMetaObject的invokeMethod调用对象函数,可以通过预设的值来实现,对象函数的自动调用。比如说我需要给对象的姓名,性别,年龄复制。那么我只需要传入三个值就行了。就能实现函数的自动调用,1.定义一个people类。
2024-11-01 14:12:20
398
原创 QT国际化,语言翻译
打开zh_hans.ts文件,将你需要翻译的地方,删除属性type=“unfinished”,然后写上你的翻译最后保存文件。所谓发布翻译,就是使用lrelease工具将ts文件转换输出不包含多余信息的qm文件(qm文件是二进制文件,非文本文件)。打开linguits工具,点击文件,选择你的zh_hans.ts文件,会出现如下的弹窗,点击确认。lupdate就是用于扫描pro文件中指定的代码或UI文件中被tr包装起来的文本。然后选择你需要翻译的地方,输入你想翻译的文字即可,翻译后记得保存。
2024-10-31 13:39:20
743
原创 如何在Linux环境中的Qt项目中使用ActiveMQ-CPP
之前在Linux下的qt程序中使用activeMQ的时候也是用了很多时间去研究,本来想的是好好记录一下,但是当时顾着写代码。很多细节也不想再去走一遍了。大概写一下怎么使用就行了。注意:一定要先开启服务器。
2024-10-31 11:10:50
524
1
原创 linux 运行 activemq,Linux 安装 ActiveMQ 服务器详解
这个需要注意的是要注意jave环境的版本。建议不要下载太新版本的服务器。需要根据自己的java环境版本来。也许做C++的会问,为什么我做一个C++的项目要用到java环境,这个我刚开始也很懵。喉咙才知道是运行这个服务器需要Java环境。Linux下安装和更新java环境应该都不难。点击past releases 就可以选择以前的版本了。然后就可以安装参考的文章去配置和运行它了。
2024-10-31 10:46:10
339
原创 存储系统概述
地址从A0000H到CFFFFH的内存,共有()字节,若用存储容量位64k x 8bit的存储器芯片构成该内存空间,至少需要多少片?eg:主存与cache的地址映射方式中,(A)方式可以实现主存任意一块装入cache中任意位置,只有装满才需要被替换。在计算机的存储系统体系中,cache是访问速度最快的层次(若有寄存器,则寄存器最快)空间局部性:刚被方问的内容,临近的空间很快被访问。eg:以下关于cache的叙述中,不正确的是?空间局部性:用到的地址,相邻的地址频繁使用。
2024-09-22 17:38:29
643
原创 流水线--基础知识
一条指令的执行过程可以分解为取指,分析,和执行三步,在取指时间t1 = 3🔺T,分析时间t2 = 2🔺T,执行时间t3=4🔺T,若按串行方式执行,则10条指令全部执行完需要(3+2+4)*10=90🔺T.一条指令的执行过程可以分解为取指,分析和执行三步,取指时间t1 =3🔺T,分析时间t2=2🔺T,执行时间t3 =4🔺T;eg: 将一条指令的执行过程分解为取指,分析,执行三步。按照流水线方式执行,若取指时间t1=4🔺T,分析时间t2=2🔺T,执行时间t3 =3🔺T.则执行完100条指令,需要的时间为?
2024-09-22 14:50:10
357
原创 CPU结构基础知识
指令:数量少,使用频率接近,定长格式。累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据。特点:指令中存放了一个地址,这个地址对应的内容是操作数的地址。实现方式:增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线。指令:机器语言的一个语句,是一组有意义的二进制代码。数据缓冲寄存器DR:写内存时,暂存指令或数据。指令译码器:对指令中的操作码字段进行分析解释。特点:操作数直接放在指令中,速度快,灵活性差。指令:数量多,使用频率差别大,可变长格式。特点:指令中存放的是操作数的地址。
2024-09-08 22:11:17
313
原创 校验码:奇偶校验,CRC循环冗余校验,海明校验码
海明校验码的原理是:在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验位地值发生变化。把接受到地CRC码用约定的生成多项式G(X)去除(模二除法),如果正确,则余数为0,如果某一位出错,则余数不为0.不同地位数出错其余位数不同。CRC的编码方法:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位,简便地得到r位校验位。奇偶校验,可检测1位(奇数位)的错误,不可纠错。
2024-09-08 13:05:02
370
原创 逻辑运算基础知识
当a=1,b=2,c=3,d=4.m和n的值为1.求执行语句之后n的值,因为a>b是0,所以m=0,直接短路,后面不执行,所以n的值不变还是1.逻辑变量之间的运算称为逻辑运算,二进制数1和0在逻辑上可以代表 真 和 假。逻辑或(|| ,+,U ,V ,OR):连接的两个逻辑全为0时才取0。逻辑与(&&,*,AND):连接的连个逻辑全为1 才取1。a||b||c:只要为真,就不必判断b和c的值。a&&b&&c,只有a为真时才继续往下执行。逻辑异或(XOR):相同取1,不相同取0。,~,NOT):将逻辑取反。
2024-09-08 11:21:11
467
原创 浮点的运算
eg:设16位浮点数,其中阶符1位,阶码值6位,数符1位,尾数8位。若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是?浮点数表示:N= 尾数 X 基数。尾数(定点小数):n=9,补码表示范围?阶码(定点整数):n=7,移码表示范围?阶码的位数决定数的表示范围,位数越多,范围越大。尾数可以表示数值的有效精度,位数越多精度越高。在IEEE745中尾数可以是原码。对阶是通过较小数的尾数右移实现的。N = 尾数 * 基数。对阶时,小数向大数看齐。
2024-09-08 10:43:08
289
原创 数据的表示-(反码,原码,补码,移码)
因为再补码里面有一个人为规定,100可以表示为-4,因为0只有一种表示方式是000,所以再补码里面100表示4。反码:整数的反码与原码相同,负数的反码是其绝对值按位取反,符号位不变。采用n位补码(包含一个符号位),表示数据,可以直接表示的数值是?eg:如果“2X”的补码是“90H”,那么X的真值是多少?补码:整数的补码与原码相同,负数的补码是其反码末位加1.原码:最高位是符号位,其余低位表示数值的绝对值。原码:数码个数2^n -1。反码:数码个数2^n -1。移码:补码的符号位取反。补码:数码个数2^n。
2024-09-07 20:04:12
595
原创 qt通过调节伽马值来调节显示器亮度
总结找个方法其实不是很好用,对于有的显示器,会被自动校准回去。如果想通过其它方式实现调节显示器亮度参见我的文章。代码是参考的别人 来源。的,自己做了一点改动。
2024-09-06 11:17:32
625
原创 使用WMI改变显示器亮度
最近遇到了新的需求,需要通过代码去改变显示器的亮度。通过调研发现,改变显示器亮度的方式有三种1.调节伽马值2.使用WMI3.使用DDC/CI协议然而这三个方法都各有缺点:第一个方式:调节伽马值,效果会收到显示器的影响,有的显示器,或者驱动,会去校准显示器亮度。如果你改变了伽马值,在你的鼠标脱离程序的时候,屏幕亮度就会被校准回去。第二个方式:使用WMI。使用WMI是不支持台式电脑的,只能在笔记本上面生效。这个也是我在调试的时候发现的,总是被拒绝访问,去查了才知道台式不支持。
2024-09-06 11:03:18
1806
原创 什么是WMI?
WMI 是基于 Web 统一管理标准(Web-Based Enterprise Management, WBEM)和对象管理来构建的,它允许脚本和应用程序访问和操作系统的信息和管理功能。无论是通过 GUI 工具、脚本还是应用程序,通过 WMI,系统管理员和开发人员可以轻松获取、使用和管理系统信息,提高工作效率和管理水平。WMI 可以查询硬件组件的信息(如 CPU、内存、硬盘、网络适配器等)和软件配置信息(如已安装的应用程序、操作系统版本等)。WMI 通过一种称为对象访问的方式暴露系统信息和管理功能。
2024-09-06 10:46:35
600
原创 使用c++创建WMI应用程序
使用 C++为 WMI创建应用程序:您必须初始化COM、访问和设置 WMI协议,并进行手动清理。但是,C++具有灵活性和功能的优势。因此,虽然对于简单的过程,使用 VisualBasicScriptingEdition(VBScript)或Windows PowerShell效果更好,但对于更复杂的应用程序,C++效果更好,并且需要编写提供程序。下面的过程描述如何创建WMI应用程序。
2024-09-06 10:31:20
955
原创 示例:创建WMI应用程序
您可以使用本主题中的过程和代码示例创建一个完整的 WMI客户端应用程序,该应用程序执行 COM 初始化、连接到本地计算机上的 WMI、读取一些数据并清理。使用场景: 如果你的应用程序需要指定线程模型,例如在 UI 应用程序中你可能会需要 STA,而在提供多线程服务时可能会使用 MTA。定义: CoInitialize 是一个简单的函数,用于初始化 COM 库,使当前线程能够使用 COM 功能。线程模型: 选择不同的 dwCoInit 选项,允许你在单线程和多线程环境中优化 COM 的使用。
2024-09-06 10:28:29
1039
原创 MFC隐藏tabCtrl控件的页面
比如你一开始有三个页面,然后你需要隐藏其中的一个页面,那么你就应该调用DeleteAllItems()将所有页面全部删除,然后调用addPage重新添加。解决:首先,隐藏是不可能隐藏的,MFC里面没有可以隐藏tab页的接口,只能通过删除Item,重新添加的方式来完成隐藏。这里会遇到一个问题,如果你是用的tabsheet类,如果这个类的show函数里面是这样写的。在删除所有的Item之前,你需要将所有的item页面隐藏,不然可能会出现意想不到的bug。
2024-08-21 16:33:00
473
原创 MFC将类A中的事件在类B中处理采用回调函数实现
在类A的界面上有一个tab控件。tab控件上面有那个页面。在MFC编程中一个tab的一个页面就应该是一个新的类。在tab的一个页面上有一个list控件。现在需要将list控件的点击事件,双击事件等在类A里面处理。回调函数需要传什么参数可以按需求设置,这里没有用自定义消息是因为类A中包含了类B的头文件。自定义消息在类B里面拿到到类A的对象。在类B里面给控件list添加点击事件。在点击事件里面回调类A的函数。给类B对象设置回调函数指针;定义设置回调指针的函数。
2024-08-16 15:54:11
399
原创 MFC为界面添加类编译报错的处理
最后的解决方式是,让添加的这个类继承于CDialog,如果你原本想让这个类继承于CPropertyPage类。你在添加的类的时候也需要继承CDialog类,然后再代码里面去修改继承的类为CPropertyPage。这样编译就不会报错。我需要插入一个dialog,然后给这个dialog添加一个类,这个类要继承于PropertyPage。但是我添加完之后 就编译不过了。删除之前添加的文件也没有用。最近在使用MFC编程的时候,遇到一个问题。
2024-08-16 15:33:33
187
原创 snmp++操作之inform(异步式)
1.管理程序开启监听2.代理程序去对某个oid发起inform操作3.管理程序处理inform请求,并回应代理程序4.代理程序获取并打印回应消息
2024-07-19 15:16:12
951
原创 snmp++操作之inform(阻塞式)
1.管理程序开启监听2.代理程序去对某个oid发起inform操作3.管理程序处理inform请求,并回应代理程序4.代理程序获取并打印回应消息
2024-07-19 15:05:00
936
原创 snmp++操作之set
1.代理程序开启监听2.管理程序去对某个oid发起get操作3.代理程序处理get请求,将oid对应的value发给管理程序。4.管理程序获取value并打印5.管理程序将这个oid和新的vlaue绑定起来,放进pdu对象。然后发起set请求6.代理程序处理set请求。然后将oid的value值修改为新的value值。
2024-07-19 14:21:55
1683
原创 snmp++操作之walk
1.代理程序开启监听2.管理程序去对某个oid发起getBulk操作3.代理程序处理getBulk请求,将oid对应的value发给管理程序。4.管理程序获取value并打印5.管理程序再将获得的最后一个oid作为 getBul的oid发起请求。6.管理程序获取value并打印
2024-07-19 14:21:15
1137
2
原创 snmp++操作之getBulk
1.代理程序开启监听2.管理程序去对某个oid发起getBulk操作3.代理程序处理getBulk请求,将oid对应的value发给管理程序。4.管理程序获取value并打印
2024-07-19 14:20:27
1531
原创 snmp++操作之getNext
1.代理程序开启监听2.管理程序去对某些oid发起getNext操作3.代理程序处理getNext请求,将oid对应的下一个oid的value发送给管理程序4.管理程序获取value并打印
2024-07-19 14:19:31
969
原创 snmp++操作之get篇
1.代理程序开启监听2.管理程序去对某些oid发起get操作3.代理程序处理get请求,将oid对应的value发给管理程序。4.管理程序获取value并打印
2024-07-19 14:18:39
2116
原创 QML语法
你的根元素对象id为root(id:root),这样就不用去思考你的QML文档中的根元素 应该用什么方式命名了。你可以在你的操作系统命令行模式下使用QtQuick运行环境来运行这个例子,比如 像下面这样: $2.使用//可以单行注释,使用/**/可以多行注释,就像C/C++和JavaScript一样。化的元素,子元素会自动的添加默认属性的子类型链表(children property。6.任何在QML文档中的元素都可以使用它们的id进行访问(id是一个任意的标识。的属性改变时,它的值也会更新。
2024-06-18 16:45:44
1092
原创 认识QML
Qt Quick是Qt5界面开发技术的统称,是以下几种技术的集合QML-界面标记语言JavaScript-动态脚本语言Qt C+±跨平台c++封装库QML是与HTML类似的一种标记语言。在QtQuick中将由标签组成的元素封装在大括号中 Item{}。这样的设计重新定义了界面的创建方式,对于开发者而言更加简单易读。可以使用JavaScript开发界面功能,也可以使用本地Qt C++函数接口扩展界面功能。简单来说,声明式的UI被称作前端,本地C++部分称作后端,将复杂的。
2024-06-18 14:41:41
431
原创 QString中一些处理字符串的函数
具体来说,\b 是一个零长度断言,它匹配一个位置,而不是具体的字符。在正则表达式中,\b 表示单词的边界,即字与空格之间的位置,或者字与标点符号之间的位置等。这包括 ASCII 字符 ‘\t’、‘\n’、‘\v’、‘\f’、‘\r’ 和 ’ '。在这个描述中,提到了正则表达式中的 \b(单词边界)零长度断言。在这个例子中,\b 会匹配每个单词的边界位置,并以此作为分割点,从而生成交替出现的非单词字符和单词字符的序列。返回一个字符串,该字符串从开头和结尾删除了空格,并且每个内部空格串行都替换为一个空格。
2024-05-22 10:00:24
1057
原创 Qt正则表达式运用---QRegExp
这个方法有个弊端就是 10 20 这种两位数里面的0 也会被匹配出来,这个我也不知道是为什么?rx1就可以匹配出非数字的符号,[^0-9]:表示不匹配0-9的数字。rx2可以匹配出除了数字和空格以外的字符。形式就可以精准匹配“0”.“1”,“2”,“3”…"9"的字符串了,不会匹配“10”里面的0了。这个表示第一个数字是1到九之间的,第二个数字是零到九之间的,问号表示第二个数字可以有也可以没有。n=1:匹配两位数,n=2:匹配三位数,n=3:匹配四位数。这里的\d表示的就是[0-9]中的一个数。
2024-05-13 14:01:28
526
原创 QRegExp
正则表达式由表达式、****量词和断言构建而成。最简单的表达式是一个字符,例如 x 或 5。表达式也可以是用方括号括起来的一组字符。[ABCD] 将匹配 A 或 B 或 C 或 D。我们可以将这个表达式写成 [A-D],并且与英语字母表中任何大写字母匹配的表达式都写成 [A-Z]。量词指定必须匹配的表达式的出现次数。x{1,1} 表示匹配 1 且仅匹配一个 x。x{1,5} 表示匹配包含至少一个 x 但不超过 5 个的 x 字符串行。请注意,通常不能使用正则表达式来检查平衡的括号或标记。
2024-05-11 11:59:56
1077
原创 windows和 Linux 下通过 QProcess 打开ssh 和vnc
VNC是一款开源的远程控制软件,功能强大且高效实用,其性能不逊色同类软件,它的工作原理和WIN远程控制软件类似。整个 VNC 一般运行的工作流程如下:(1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。(2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取的 VNC Server 显示装置。(3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。
2024-05-11 11:14:11
907
原创 Qt Creator Pro文件添加库和源文件
因为lib_header里面只有头文件,他的cpp在lib里面,所有的dll都在lib里面,所以要将lib添加进来。这个英文符号点,表示当前目录,因为这个文件是和pro文件在同一个目录下,所以用./这里因为我没有添加lib_header的cpp文件和.h文件,所里左侧没有显示。后续打包完成还需要将所需的dll文件拷贝到exe所在的文件下面。添加了lib文件夹下面的NetItfd 的dll文件。然后开始添加所需要的cpp文件和.h文件。
2024-04-26 12:05:27
1660
Windows Management Instrumentation (WMI)的英文开发文档
2024-09-06
Qt初学者学习文档,讲述了基础用法和常用控件
2024-01-31
Linux下去除opencv窗口边框
2025-03-04
Qprocess启动cmd cmd弹窗不显示 任务管理器能看到是运行的
2024-05-10
qt编译mysql驱动失败
2023-05-12
OpenGL纹理贴图有缝隙
2023-01-10
堆空间不释放,从地址取值,访问冲突
2022-10-27
c++局部变量释放,还可以拿到地址的值
2022-08-18
关于#qt#的问题:error: undefined reference to `cv::face::EigenFaceRecognizer::create(int, double)'
2021-09-17
QT实现录屏效率低暂用内存
2021-09-14
在qt中配置openCV中遇到的问题
2021-09-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人