- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 QProcess启动多个外部程序
其次也可以使用QProcess的方法setWorkingDirectory()方法,但是实测有时有问题。最近需要使用不同参数将一个EXE启动多个进程,遇到了启动不成功的情况,在此做个记录。再者也可以使用QProcess的startDetached()方法的第三个参数。大家都知道Qt与外部程序通讯的其中一种方式:QProcess。后面两个方法测试过程中会出现启动不成功的情况。
2024-02-21 14:13:11 207
原创 带数字的字符串排序Qt
但是遇到字符串中包含1、2、3、10、11、12、21、22、31这种时,顺序就会乱掉;日常开发中排序操作是很常见的,大多时候使用qSort默认方式,就可以满足需求;
2024-01-12 16:28:03 356
原创 罗技M590鼠标usb优联连接不上
手里有一个罗技M590鼠标从18年4月一直用到现在,质量很好,除了滚轮有些松别的没毛病。如果不行,先NO然后长按切换按钮进行连接(等指示灯闪烁后)关闭鼠标OFF,然后再打开鼠标ON。之后软件感知到以后,继续操作就OK了!如果也想像我一样两台电脑使用罗技鼠标的Flow功能,那么需要下载LogitechOptions来进行设置哦!2.查看是否已经使用蓝牙连接,已经将鼠标连上电脑?如果已连接,请关闭蓝牙。3.1.按照下图指示,将usb优联接收器插入电脑。1.下载unifying250.exe。
2023-11-25 15:47:24 1492
原创 qml使用QAbstractListModel作为数据源
但是后台数据的提供还是用qt c++的实现,MVC中即可用Model进行。主要在于beginRemoveRows&endRemoveRows中间进行的操作,将待删除元素取出,在model实际数据存储处进行remove,最后再将元素彻底delete。主要在于beginMoveRows&endMoveRows中间进行的操作,将待移动项取出并插入到新位置。二、又例如想进行元素的删除,也需要model进行支撑。一、例如想进行元素的移动,就需要model进行支撑。但是想要一些其他的功能,就需要自己去实现了!
2023-08-26 23:27:30 300
原创 QtWidgets和QtQuick融合(QML与C++融合)
1.2.也可以直接在其他类中直接返回该类指针,直接给qml进行使用(当然前提也是其他类也进行了注册,已经在qml里实例化了)。1.1.可以直接在qml中进行该类的实例化,进而进行访问(qmlRegisterType时需要添加参数);2.1.也可以直接继承QAbstractListModel等类,进行实例化,qml中可以直接访问相关。qmlRegisterType注册类时,带了namespace的类,类指针在qml中是不能够访问的。qml中访问只能访问类的指针,不能访问类对象;主要在于红框中的方法的重写。
2023-08-26 23:08:36 918
原创 QtCreator指定Windows Kits版本
先说下事件起因:之前一直在用Qt5.12.6+vs2017在写程序,后面调研了一个开源库Qaterial,但是翻来覆去的编译都有问题,后面升级到了Qt5.15.2+vs2019来进行cmake的编译,搞定了Qaterial,但是返回来编译原来的工程,结果出错,而且还是C++库的问题,后面就找了资料,看了自己电脑里C:\Program Files (x86)\Windows Kits\10\Lib下有两个版本的sdk,vcvarsall.bat应该默认使用的是最新的sdk,因此出现了问题。
2023-08-26 21:59:24 583
原创 QtCreator中设置自定义注释格式
另外QtCreator中支持Doxygen,在函数前直接打/**加回车,会直接进行函数的注释添加!QtCreator--工具--选项--文本编辑器--片段--组:C++--添加。点击Apply,并且Ok。
2023-08-18 15:20:35 180
原创 给windows系统加上右键notepad++打开
新建了command之后选中command项会发现右边有相应的值,双击默认进行修改 D:\xxx\notepad++.exe %1。4、在右边新建字符串值,取名后Icon路径是安装目录:D:\xxx\notepad++.exe。安装完成notepad++之后,选中文件后 右键可能没有使用使用notepad++打开编辑。5、在新建的项【使用notepad++打开】上右键,然后新建一个项,命名为command,已经出现了相应的邮件菜单!3、在shell上右键,新建项,命名为:使用notepad++打开。
2023-07-29 18:36:10 329
转载 C++ 内存分配(new,operator new)详解
事实上,分配内存这一操作就是由operator new(size_t)来完成的,如果类A重载了operator new,那么将调用A::operator new(size_t ),如果没有重载,就调用::operator new(size_t ),全局new操作符由C++默认提供。然而,前面已经说过,new运算符的执行过程分为两步,C++提供new运算符的重载,其实是只允许重载operator new()函数,而operator()函数用于分配内存,无法提供构造功能。使用这种方法,直接调用类的构造函数。
2023-06-29 14:29:33 452
转载 Qt多级表头(QTableView表头合并)
头文件的每个部分都由其section()指定的节ID描述,并且可以位于头文件中的特定visualIndex()中。它取代了Qt3先前用于相同目的的QHeader类,但使用Qt的model/view体系结构与item view类保持一致。每个头文件都有一个orientation()和若干节,由count()函数给出。A section指的是标题的一部分——根据方向,可以是行,也可以是列。对于水平标头,该部分相当于模型中的一列,而对于垂直标头,该部分相当于模型中的一行。
2023-06-14 22:17:48 1623
转载 大端 / 小端,三种判断方法
而在C语言中,不仅仅是一个字节来存储一个数据,除了一个字节的char,还有两个字节的short,四个字节的int等等(看具体编译器)。另外,对于位数大于8位的处理器,例如32位的处理器,由于寄存器的宽度大于一个字节,那么就有如何将多个字节进行排布的问题,于是就出现了大小端的问题。3.定义联合体,一个成员是多字节,一个是单字节,给多字节的成员赋一个最低一个字节不为0,其他字节为0 的值,再用第二个成员来判断,如果第二个字节不为0,就是小端,若为0,就是大端。3.怎么判断当前机器的字节序?
2023-06-13 10:17:53 3003
原创 std::map与QMap插入效率对比
结论:在C++11加持下,std::map的emplace看来是最好的方法了!上一篇文章介绍了std::map在普通operator[]赋值的流程。可以看到,使用emplace是优的!不管在写法还是效率上都是最优的!可以看到,使用insert是最优的!不管在写法还是效率上都是最优的!
2023-06-08 15:51:35 326
原创 std::map的使用
对于自定义类型Student而言,作为Value插入到std::map中,没有写默认构造函数,编译器报错,为了探明原因,就把Student类的几个重要函数都写了出来并且配合qDebug信息输出,找出了真正原因:std::map在插入新值的时候会先调用默认构造函数,然后调用赋值构造函数!
2023-06-08 11:47:32 185
转载 C++11 字符串编码转换
【注】windows平台的std::wstring 就是std::u16string, wchar_t 就是char16_t (utf-16编码)。首先需要明白的是,std::string的没有编码的,里面可以保存gbk,utf-8等编码的字符串。注意:转换后的获得的std::string的编码为utf-8,windows下输出是乱码 (windows终端输出中文要正常显示,要转化为GBK编码)一、std::string 转为 std::wstring( utf-8 --> wchar )
2023-06-07 14:55:41 1076
原创 C++析构函数声明为protected的原因
在堆中,我们通常使用new/delete来创建/销毁对象。即:当调用new时,它会自动去调用相应类的构造函数;当调用delete时,它会自动去调用相应类的析构函数。poco这么做,主要是为了使这些类不能在栈上申请内存!最近在看poco源码中发现很多类的析构函数都设置为protected,经过思考就有了这篇文章!在栈中,该过程是自动完成的。即:不需要我们显式调用new/delete。然而,当我们想禁止在栈中产生对象时,如何来实现呢?类的构造/析构都是public的。
2023-06-06 14:14:04 193
原创 CTK编译没有ctkEventAdmin
Configure,Generate完成后直接Open Project使用VS进行编译,ctk源码编译,默认时不会生成下面这4个库的,如果需要使用插件间通讯,则需要将设置打开。CMake中将CTK_ENABLE_PluginFramework进行勾选,如下图。在my_build\CTK-build\bin\Debug下就有如下dll生成。接下来就可以使用CTK进行插件化编程了!
2023-05-22 15:24:55 65
原创 Qt使用CTK插件机制
Qt的插件机制当然也就是使用Q_DECLARE_INTERFACE、Q_INTERFACES、Q_PLUGIN_METADATA三个宏。其实CTK插件机制,还是应用的Qt的插件机制,只不过使用了中介者模式可以对自定义的插件进行管理并且提供可以互相通信的一个媒介。Qt的插件机制也是建立在Qt元对象系统基础之上的,Qt元对象系统主要提供了Qt的信号槽、RTTI、动态属性系统。第三个宏的作用是插件元信息&元信息获取&插件实例句柄获取的功能。前两个主要是RTTI的实现和插件有效性检测;
2023-05-15 11:44:12 340
原创 Matlab连接STK相关问题
网上说的是先装Matlab再装STK,但是由于网速问题Matlab一直没有下载下来,就先安装的STK,后面再进行Matlab的安装也是没有问题的。出于公司业务,接触到了STK(11.6.0)与Matlab(R2018b)后面实在没办法,重新进行了安装与破解,才好的。2.Matlab连接STK,com调用不成功。改用管理员权限重新打开Matlab,可用!
2023-05-12 13:46:33 401 4
原创 自定义带复选框QComboBox,包括代理
工作中不乏这样一个需求:给ComboBox加上复选框,并且可以实时显示勾选内容。扩展到Model-View框架中就形成了一个代理,对单元格中的内容进行自定义。
2023-05-08 17:44:18 515
原创 Qt文件编码转换
主要使用QFile、QTextStream及QTextCodec三个类,先进行文件编码的识别(ANSI、UTF-8、UTF-8 BOM、UTF-16 LE、UTF-8 BE),再进行文件编码的转换。主要用于Qt项目中源代码的批量转换,从ANSI或UTF-8转换为UTF-8 BOM。
2023-04-24 11:38:08 1272
原创 Qt自定义饼图(重叠、切片、圆环、高亮)
由于项目中遇到饼图各个切片重合的情况,虽然可以通过设置透明度进行颜色融合,但仍然不能满足需求,思考再三,想出普通饼图+环形外框的方案,大家一起来看看效果吧!
2023-03-23 14:31:57 293
原创 Qt自定义QAbstractItemModel实现文件夹/文件树
VVTreeItem包含type、value、父节点、子节点4个必要属性,及几个附加属性。另外对于View中的数据,可以自定义展示方式,使用代理。QAbstractItemModel是。
2023-03-22 17:55:30 956 3
原创 Qt撤销/回撤框架
它将撤消和重做请求转发到活动堆栈,活动堆栈是与用户当前正在编辑的文档相关联的堆栈。step2:在操作的地方,创建一个QUndoCommand实例,并且push进QUndoStack,此时会自动调用Command的redo()方法;想必大家都有这样的需求:Ctrl+Z、Ctrl+Y进行用户操作的撤销和回撤,Qt框架中有Qt's Undo Framework供大家使用。它包含了在文档上执行的所有命令,并可以通过撤消或重做它们来前后滚动文档的状态。单击视图中的命令会将文档的状态向后滚动或转发到该命令。
2023-03-22 16:44:25 1084
原创 Qt信号分组管理
通过关联QPushButton的click()信号到QSignalMapper的map()槽函数,并且通过setMapping方法,将每个QPushButton的click()信号进行映射,我们就可以将这一组QPushButton重新进行了组织,点击每个按钮,都会发出clicked(QString)信号,通过QString参数可以知道具体是哪一个按钮进行了点击。
2023-03-22 11:27:08 142
freetype2.10.0编译好的库win32-and-x64
2024-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人