- 博客(249)
- 资源 (55)
- 收藏
- 关注
原创 Qt+vs2022的中文乱码问题。
最近在项目中使用Qt中文时出现了乱码问题,但是以前的方法用着却没有作用了,关于vs + Qt中常量中文字符串、变量字符串中文乱码问题的解决方式。const char* info = “中文显示”;1.在项目中所有的头文件中添加。遂记录一下这次的解决方法。保证编码采用utf-8。
2024-07-30 17:20:33 271
原创 使用QGraphicsView三件套绘制图片,绘制鼠标事件
Qt通过鼠标绘制线条、矩形、多边形本质都是根据鼠标的坐标位移,使用QPainter的自带的函数进行绘制。
2024-07-29 14:46:07 228
原创 QML笔记八
在QQmlContext中设置一上下文(按照这样new QQmlContext(engine.rootContext())),上下文对象的是所有属性都可以在context中通过名称访问。context->setContextProperty(“stringModel”,&modelData) //////和下面代码的区别。//////和上面代码的区别。window销毁后,新创建的context必须显示销毁,可以将window作为context父对象,利用QT的对象内存结构自动销毁。
2024-05-15 23:05:36 1021
原创 C++ 使用matplot++ 处理数据生成svg图表
python的图表库很丰富,C++依赖于python的 matplotlib的库却有很多功能不足,显得很鸡肋,其他的一些库没有过多的研究,Matplot++编译需要依赖一堆第三方库,可以参考官网,但是github上也提供了编译好的静态库,使用Matplot++同时需要下载安装gnuplot,并将gnuplot的bin加入到环境变量。将include、lib加入到对应的位置,并配置好路径和库连接,这部分不多说了。这里主要说说不依赖于python的纯C++ 的图表库 Matplot++
2024-05-13 09:55:25 434 1
原创 QML基础语法七
ListModel包含三个数据项,有三个ListElement表示,每个ListElement有三个角色name、cost、attributes。QUick的数据模型主要包含在QtQml.Model中,还有个基于XML的QtQml.XmlListModel。使用Repeater可以将模型中的数据在定位器positioners中进行布局和显示。使用XML类型的导入 import QtQml.XmlListModel。使用表格类型的需要import Qt.labs.qmlmodels。例子:存储水果信息,
2024-05-09 20:41:20 215
原创 C++下使用Matplotlib-cpp的一些配置
这里为了打包方便,将python3.dll、python39.dll、vcruntime140.dll /path/Anaconda3/Library/plugins/platforms复制到exe所在的目录中。或者使用虚拟环境中的envs中的python环境对应的include 和 Lib/site-packages/numpy/core/include。C/C+±–》常规–》附加包含目录—》(这里使用了Anaconda3默认的安装的python3.9,没有使用虚拟环境)//设置python环境。
2024-05-09 15:09:47 925
原创 QML基础语法六
主要就是red、lime、blue、black、white、yellow、cyan、magenta、green、pink、gray、gold等。color,一个ARGB格式颜色值,主要通过SVG颜色名称、十六进制、Qt.rgba()表示。Image用来显示图片,路径由source指定,格式为Qt支持的任何格式,PNG、JPEG、SVG等。rotation属性指定顺时针旋转的度数,默认为0,正数为顺时针旋转、负数为逆时针旋转。Item拥有一个scale、rotation属性,可以实现缩放、旋转。
2024-05-05 22:37:30 981
原创 QML语法基础四
在MouseArea没接受事件时,才可以继续传递,即当一个事件在MouseArea中处理,需要在其他事件处理器中设置 MouseEvent.acepted=false,该事件才能继续传播。例如1000ms的定时器,经过了500ms,突然去改变repeat值,则之前的500ms会重置为0,再过1000ms后才能触发。实现复杂的拖拽事件用到DragEvent,通过x、y获取拖动的位置,使用keys识别数据类型和源的键列表。键盘事件是在键盘上按下一个键时就触发,控件的focus设置为true,该控件便有焦点。
2024-04-27 12:10:43 1026
原创 QML语法基础三
定位器添加删除一个子Item时,可以使用Transition,添加动画效果 上述四个定位器都有 add move。如果可以通过x y width height 解决,尽量使用,因为布局管理器、定位器锚会占用大量内存和实例化时间。QML提供了多种布局管理器、定位器、基于锚anchors的布局、x,y,width,height等调整用户界面。将子项目排列在网格中,向网格中添加项目会按照从左到右,从上到下进行排列。可以从前向后,像流一样布局子项目,超出宽度自动话换行。populate属性。
2024-04-25 22:37:51 608
原创 QML语法计基础二
top: 30} 整数验证器 限制输入为10-30的整数。TextInput.PasswordEchoOnEdit 使用密码验码字符,在输入时显示真实字符。Text.StyledText 支持一些基本的html文本样式标签,要求标签必须正确配套。mapFromItem(item,x,y)将子容器坐标(x,y)映射到其父容器的坐标上。父容器的不透明度会影响到子容器,如果要设置不透明度,只需要更改子容器的不透明度即可。单词间距 正值加大间距 负值减小间距。
2024-04-23 23:04:09 591
原创 QML语法基础一
2.1声明:C++中通过Q_PROPERTY宏:QML中通过 property propertyType propertyName—>例子:property color nextColor。声明了一个color类型的nextColor属性,隐式为该属性创建了一个onNextColorChanged,如果nextColor值改变就会触发,即称之为onSignalName:(_,y)=>console.log(”: "+y) //只访问第二个参数,不访问第一个。
2024-04-18 22:44:55 1106
原创 Qt的Model-Deletage委托代理机制
处理编辑器的事件: 通过实现eventFilter()方法来处理编辑器的事件,如键盘事件;渲染特定类型的数据: 通过定制单元格的外观来渲染特定类型的数据,例如颜色,字体等;支持不同类型的编辑器: 支持不同类型的编辑器,例如文本编辑器,下拉列表编辑器等;编辑特定类型的数据: 通过创建编辑器来编辑特定类型的数据,例如日期,数值等。更新编辑器的尺寸: 通过实现sizeHint()方法来更新编辑器的尺寸;属性编辑器: 使用委托可以创建自定义属性编辑器来编辑特定类型的属性。
2023-11-16 14:35:50 501
原创 BeegFS编译以及简单的搭建
BeeGFS编译编译整体模块编译单个模块简单搭建环境编译整体模块需要将gcc版本升级到高版本,支持C++14yum install libuuid-devel libibverbs-devel librdmacm-devel libattr-devel redhat-rpm-config \ rpm-build xfsprogs-devel zlib-devel ant gcc-c++ gcc \ redhat-lsb-core java-devel unzip libcurl-devel e
2022-04-26 14:49:53 1514
转载 GDB调试-从入门实践到原理
转载自:CPP开发者背景作为C/C++开发人员,保证程序正常运行是最基本也是最主要的目的。而为了保证程序正常运行,调试则是最基本的手段,熟悉这些调试方式,可以方便我们更快的定位程序问题所在,提高开发效率。在开发过程,如果程序的运行结果不符合预期,第一时间就是打开GDB进行调试,在对应的地方设置断点,然后分析原因;当线上服务出了问题,第一时间查看进程在不在,如果不在的话,是否生成了coredump文件,如果有,则使用gdb调试coredump文件,否则通过dmesg来分析内核日志来查找原因。概念
2022-04-22 14:55:06 4939
原创 C++11新特性学习--容器篇
class STLClass{public: //关联容器 排序的 map set static void testMultiSet() //可以有重复值 { multiset<string> city{"xian","beijing","tianjin","henan","weinan"}; for(const auto &elem : city) { cout<<elem&l
2022-03-08 15:38:12 883
原创 C++11新特性学习--第一篇线程同步死锁及异步线程问题
头文件:#include < thread >互斥锁 数据竞争与资源互斥std::mutex mtx;void shared_printf(string msg,int id){ //mtx.lock(); //当互斥对象内部资源出现异常时,此处将造成死锁 //cout<<"__FUNCTION__ msg:"<<msg<<" id:"<<id<<endl; //mtx.unlock();
2022-03-08 15:28:53 962
原创 错误:can‘t create 事务 lock on /var/lib/rpm/.rpm.lock (只读文件系统)
mount -o remount rw /usr; mount -o remount rw /var; mount -o remount rw /
2021-12-13 14:21:11 2647 2
转载 开发过程中错误码总结
〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效。〖14〗-存储器不足,无法完成此操作。〖15〗-系统找不到指定的驱动器。〖16〗-无法删除目录。〖17〗-系统无法将文件移到不同
2021-12-10 17:16:27 1577 2
原创 记录一些windows开发的工具函数
windows时间转Linux时间static void FTimeToSystemTime(FILETIME file_time, time_t* t){ ULARGE_INTEGER ui; ui.LowPart = file_time.dwLowDateTime; ui.HighPart = file_time.dwHighDateTime; *t = ((LONGLONG)(ui.QuadPart - 116444736000000000) / 10000000); }sta.
2021-12-06 16:43:50 259
原创 Git常用的命令
#查看远程分支git branch -r#查看本地分支git branch -a删除目标分支git branch -D master切换分支git checkout 本地分支名重新拉取master分支git checkout master拉取远程分支到创建的本地分支git checkout -b 本地分支 origin/远程分支拉取远程分支(先创建本地分支,在切换到当前分支)git pull origin 远程分支使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需.
2021-12-03 09:28:01 148
原创 CreateTimerQueueTimer精度问题 本地时间戳
在windows平台上使用 CreateTimerQueueTimer定时器时,需要将精度设置到1-2 ms的时间,但是CreateTimerQueueTimer的执行时间片在15ms左右,后来无意间找到一篇文章原来是微软故意这么干的,他觉得设置精度到毫秒级别,太耗费资源了,如果是移动设备,频繁唤醒切换线程,电池消耗得很快。于是微软宁肯抛弃强兼容性传统,也坚决让这函数失效。悲催啊!性能问题,你这样搞就很扯淡呀微软!!!!!!...
2021-11-29 16:24:28 974
原创 Qt事件与自定义事件处理
QObject 类是所有 Qt 对象的基类,是 Qt 对象模型的核心,所有 Qt 部件都继承自 QObject。QObject 及其派生类的单形参构造函数应声明为 explicit,以避免发生隐式类型转换QObject 类既没有复制构造函数也没有赋值操作符函数(实际上它们被声明为私有的),因此无法通过值传递的方式向函数传递一个 QObject 对象每一个 QObject 对象只能有一个父 QObject 对象,但可以有任意数量的子 QObject 对象A ma; B mb; C mc;ma..
2021-09-24 10:33:54 709
原创 Linux 软链接和硬链接
突然忘记怎么区分软连接和硬链接了,做一次备份吧!硬链接创建:ln 原始文件名 产生的硬链接名称ln libfuse libfuselnk 这里libfuse就是源文件,libfuselnk就是生成的硬链接软连接创建:ln -s 原始文件名 产生的硬链接名称ln -s libfuse libfuselnk再Linux中怎么区分软连接和硬链接呢?如下图硬链接的节点符号( inode 号)和源文件是相同的,相反软连接是不同的...
2021-09-17 14:54:06 212
原创 Qt反射机制获取属性信息
一、反射系统1、QMetaProperty 类①、作用:用于描述对象的属性,可使用该类的成员函数获取对象属性的信息。②、该类拥有一系列的返回 bool 值的成员函数,用于判断属性的行为(见下表)isReadable() 可读返回trueisEnumType() 若属性的类型是枚举,则返回 trueisWritable() 可写返回 true isFinal() 声明属性时 FINAL 是否为 trueisValid() 属性有效则返回 true。 isFlagType()
2021-09-16 19:45:39 2246
原创 QVariant类和属性系统
一、QVariant 类使用QObject::property 函数可读取属性的值,使用 QObject::setProperty 函数可以设置属性的值,但是属性有很多种类型,怎样使用 property 函数返回的属性值具有正确的类型呢?为解决这个问题,使用了一个QVariant 来描述类型.QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++共用体 union,一个QVariant 对象,一次只能保存一个单一类型的值。该类封装了 Qt 中常用的类型,对于QVariant 不
2021-09-16 15:54:18 968
原创 Qt的属性系统
一、属性系统1.属性基础属性和类成员数据相似,属性可以使用元对象系统,和类数据成员存储方式不同。主要差别在于存取方式不相同,比如属性值通常使用读取函数(即函数名通常以 get 开始的函数)和设置函数(即函数名通常以 set 开始的函数)来存取其值,除此种方法外,Qt 还有其他方式存取属性值。注:一个属性都有与之相关联的数据成员,而采用的命名规则通常是加上 m_前缀,比如属性名为 a,则与之相关联的数据成员名称通常为 m_a。2.属性值进行存取使用 QObject::property 和 QOb
2021-09-14 17:30:56 833
原创 Qemu-Spice流程初始化
Qemu-Spice初始化Qemu模块优先初始化相关全局设备对象PCI、ISA、IDE、I2C等;通过VDI接口将CoreInterface实例传入到libSpice中,通过libSpice中调用相关接口。设备对象初始化完毕,创建Server Socket,等待Socket连接,建立Main_Channel通道Qemu-Spice IO流程通过Qemu的add_interface接口将watch_add函数传入spice中,设置Socket的监听函数以及读写函数,通过WATCH_EVENT_READ
2021-09-14 17:09:33 620
原创 Qemu-spice云桌面创建
Spice是一个开放的远程计算解决方案,提供客户端访问远程显示和设备(如键盘、鼠标、音频)。主要的用例是获得对虚拟机的远程访问。官网:SpiceQemu-Spice框架Spice的基本构建模块:Spice Server: Spice Server是在libspice中实现的,libspice是一个VDI可插拔库。目前,这个库的主要用户是QEMU。 QEMU使用Spice -server通过Spice协议提供对虚拟机的远程访问。虚拟设备接口(Virtual Device Inte
2021-09-14 16:57:25 3535
原创 Qt元对象反射机制
一、元对象概念元对象功能:信号与槽、运行时类型信息、动态属性二、元对象实现条件1.该类必须继承自QObject类2.类的私有区域必须声明Q_OBJECT宏,该宏用于启动元对象特性,使用动态特性,信号和槽3.元对象编译器(moc)为每个QObject子类,提供了实现元对象特性必须的代码三、元对象系统运行原则1.moc编译器首先会去掉扩展语法当Qt程序启动了元对象属性时。2.moc编译器是一个类似于qmake的工具,用于读取分析C++文件,若发现类包含Q_OBJECT宏的声明,会生成另
2021-09-10 16:52:28 1191
原创 Windows下主线程等待子线程任务完成防止阻塞的方式
@线程同步方式用户模式:WaitForMultipleObject内核模式:MsgWaitForMultipleObjects用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑使用内核模式。一般情况下,主线程创建子线程后(优先使用_beginthreadex),使用WaitForSingleObject(hThread, INFINITE);等待子
2021-08-23 14:35:20 1136
原创 二级指针使用注意事项
二维数组与二级指针的使用给,数组只能处理特定数量的数据,局限性较大。二级指针可以看作是一个数组,申请内存方式如下: char** disk = (char**)malloc(sizeof(char*)*5); for (size_t i = 0; i < 5; i++) { disk[i] = (char*)malloc(sizeof(char) * 260); memset(disk[i],0, 260); } int test(char** _str, int k) {
2021-08-18 15:36:18 147
原创 Mingw64编译跨平台程序时,_stat函数对于Windows中文路径不支持
通过Mingw64交叉编译Windows程序时,会经常为了适配使用到一些C库的函数,但是Windows平台相较于Linux平台对于C库的函数支持性有一定的差距!在做文件系统时,当获取文件、目录的详细信息时,会使用的stat函数,该函数再Linux环境下没有什么使用的问题,但是再Window环境下,对于 char*字符串中带的中文路径支持度不够,适配跨平台时,需要使用_wstat64宽字节函数对应!解决该问题! char u8str[] = u8"D://你好你好"; WCHAR uni_buf[MAX
2021-08-17 14:32:11 921
DialogTestCEF.rar
2020-05-14
MyLive555.zip
2019-12-06
OpenCV3书本配套资源.rar
2019-07-10
openal-soft-master.rar
2018-01-15
openal-soft-android-master
2017-12-06
ts流中pat表pmt表解析
2017-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人