![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C&C++
文章平均质量分 79
qinpanke
这个作者很懒,什么都没留下…
展开
-
QMap多线程读写存在的问题分析
Qt的单列集合和双列集合在多线程并行访问时有很大的不同之处。单列集合可以多线程并行读写而无需加锁(不考虑数据同步的情况下),而双列集合,例如QMap,如果不加锁进行多线性并行读写会出现内存冲突访问的问题,不加锁的情况下只能并行读。下面本文就对QMap在多线程并行读写访问时可能存在内存冲突的情况进行实验验证,最后给出用互斥锁的方案进行解决的方法。第一步,构造可用于多线程并行访问的全局数据,以类的...原创 2020-01-01 19:55:35 · 4802 阅读 · 2 评论 -
QT SDK与C4100编译告警
“warning C4100: … unreferenced formal parameter.”QT SDK (VC2008)在使用qmake生成makefile文件时,缺省会打开C4100的编译告警开关。就我们的开发实践来说,C4100实在是个多余的告警,尤其是在C++程序中,我们经常定义一些虚函数等作为接口类,这些虚函数本身基本是空函数,由派生类重载出具体的实现。一旦放开C4100告原创 2016-05-27 16:05:53 · 1942 阅读 · 0 评论 -
QT线程池实验研究与分析(QThread与和QThreadPool + QRunnable使用上的区别)
第一部分:QT线程池的构建与使用 网上关于QT线程池QThreadPool的文章很多,而且大都千篇一律,基本上都是参考QT的帮助文档介绍QT全局线程池的用法。这样就往往会使人产生误解,QT是不是推荐大家使用其全局线程池,而不推荐使用自定义构造的线程池? 实际情况并不是这样的。而且在实际的项目当中我们通常并不希望仅仅使用一个全局的线程池,而是在需要线程池的工程中都构建和维护自己一个小小的线原创 2016-06-18 11:57:41 · 18106 阅读 · 8 评论 -
Qt Xlsx ( QtXlsxWriter ) qt读写excel文件库的windows安装使用
声明,我的Qt版本为5.7 (x64)qt对于excel的读写过于繁琐使用,但是Qt Xlsx Module某块提供了读写Excel 文件的类.其不需要安装 Microsoft Excel 与QT5结合,可以使用在任何平台,该库主要用如下几个功能:Generate a new .xlsx file from scratchExtract data原创 2017-01-05 17:19:57 · 1700 阅读 · 0 评论 -
QT操作Excel时将读写功能置于子线程内存报错解决方案
在程序设计和开发中,我们通常会将比较耗费CPU时间的操作放到子线程当中,从而避免主线程的阻塞,同时显现并行化。尤其是在QT这类涉及到GUI程序设计的程序。我们都知道,在QT中GUI线程占据着主线程,如果我们将那些比较耗费CPU时间的任务放到主线程中执行会导致GUI界面的卡顿或卡死现象的出现。 基于这个原理,前段时间在开发QT读写Excel文件的时候,还是基于该策略,将Excel的读写操作原创 2017-05-01 11:48:24 · 2118 阅读 · 4 评论 -
Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作
QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。QSqlDatabase对象象征了数据库的关联。Qt使用驱动程序与各种数据库的应用编程接口进行通信。Qt的桌面版(Desktop Edition)包括如下一些驱动程序:驱动程序数据库QDB原创 2016-04-01 18:08:02 · 16987 阅读 · 1 评论 -
QThread 使用 SLOT 槽函数
QThread 的两种使用方法1. 不使用事件循环。这是官方的 Manual 、example 以及相关书籍中都介绍的一种的方法。a. 子类化 QThreadb. 重载 run 函数,run函数内有一个 while 或 for 的死循环c. 设置一个标记为来控制死循环的退出。如果使用这一方法,QThread::quit()没有效果。因为这个线程根本就不需要事件循环。这种原创 2017-10-31 11:41:52 · 2022 阅读 · 0 评论 -
基于CTP的期货智能程序化交易系统平台
项目名称:基于CTP的期货智能程序化交易系统平台研究关键词:期货,人工智能,程序化交易,CTP项目简介: 随着中国金融衍生品市场发展的逐步完善,传统的人工操作交易模式已经逐渐难以适应快速的市场变化和剧烈的行情波动,尤其是在以期货为典型代表的“T+0”市场。本项目旨在开发一套一体化智能期货交易系统,将人工智能技术应用于传统的期货交易系统中使得交易员不仅可以基于该系统实现基础...原创 2018-11-21 21:10:37 · 5507 阅读 · 0 评论 -
CTP:报单错误:不允许重复报单(原因及解决方案)
CTP:报单错误:不允许重复报单(原因及解决方案)使用QT5.10+上期的CTP平台开发了一整套程序化交易系统,开发的过程中遇到了各种各样的问题,其中关于CTP接口的开发就遇到了很多坑,甚至很多坑是经过了一段时间的实盘测试才能被发现。本文所描述的就是其中一个问题。系统大部分运行时间报单都是正常的,偶尔会出现CTP:报单错误:不允许重复报答。出现该问题的原因有两个:1、报单时候使用的报...原创 2019-03-30 09:37:49 · 4597 阅读 · 1 评论 -
visual studio项目默认“Header Files”、“Source Files”等文件夹不显示导致代码文件全乱的解决方案
使用Visual Studio进行项目开发创建默认工程的解决方案资源管理器里查看项目文件,所有的文件是按照其所属的类型自动归类,例如:.h头文件自动划归到Header Files文件夹,.cpp文件自动划归到Source Files文件夹下,如下图所示:在写代码的时候通常由于误操作,会导致Header Files、Source Files等文件夹都不见了,而且代码全处于混乱状态,如下...原创 2019-10-03 15:31:12 · 5377 阅读 · 1 评论 -
QTableWidget控件使用总结
http://blog.csdn.net/mingxia_sui/article/details/76818631.QTableWidget不能在mainwindow中随主窗口的大小变化?解决:在表格外部添加布局。代码:tableWidget=newQTableWidget;tableWidget->setObjectName(原创 2016-04-03 10:38:45 · 3169 阅读 · 0 评论 -
安装事件过滤器(installEventFilter) ,过滤子控件事件,截获控件按键、鼠标事件
文章来自:http://blog.csdn.net/iamdbl/article/details/1630043#Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理。假设我们有一个CustomerInfoDialog控件,由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineE原创 2015-12-11 14:16:42 · 13359 阅读 · 2 评论 -
C语言读写文件大全 之 基础篇
一直想着把C语言和C++关于文件操作的相关内容总结一下,这样在使用的时候就可以顺手拈来,嗯,这就是好记性不如烂笔头。既然是文件操作,那么开篇就从“文件”的介绍开始。 1、文件 文件指存储在外部介质上的相关数据的集合。存放文件的外部介质有磁带、磁盘、光盘等外部存储器。数据包括:数字、文字、图形、图象、声音、视频等。每个文件都有一个名字,叫做文件名。计算机操作系统就是根原创 2012-09-18 21:34:37 · 2366 阅读 · 0 评论 -
C语言读写文件大全 之 文件的创建、打开与关闭
前面我们了解到标准I/O库函数的文件有两个处理方式:缓冲文件系统和非缓冲文件系统。由于标准的ANSI决定不采用非缓冲文件系统,而只采用缓冲文件系统,即既使用缓冲文件系统处理文本文件,也使用它来处理二进制文件。也就是将缓冲文件系统扩充为可以处理二进制文件。 缓冲系统自动地在内存区为每个正在使用的文件开辟一个缓冲区,文件的存取都是通过缓冲区进行的。缓冲区相当于一个中转站,它的大小由具体原创 2012-09-26 12:52:57 · 7374 阅读 · 0 评论 -
浮点运算结果为什么会出现误差
在实际编程中,经常会用到浮点运算,大家可能会发现其结果出现误差,与实际期待值不一样。为什么。 其根本原因是计算机所使用二进制01代码无法准确表示某些带小数位的十进制数据。下面我们来分析下。我们知道将一个十进制数值转换为二进制数值。在实际编程中,经常会用到浮点运算,大家可能会发现其结果出现误差,与实际期待值不一样。如下C#代码: float a = 0.65f; float b =原创 2013-01-02 22:30:47 · 1799 阅读 · 1 评论 -
C/C++常用开发工具
C/C++开发常用工具开发环境 ---->Turbo c DOS时代c语言开发的经典工具,目前适合两类人使用:c语言beginner(尤其是学生一族),具有怀旧情节的专业人士:) ---->Visual C++ 6.0/7.0 稳定而强大的IDE开发环境,具有丰富的调试功能,定制宏的功能也是其一大特色。Microsoft的经典之作,功能强大自原创 2013-01-06 14:34:03 · 1070 阅读 · 0 评论 -
VxWorks中高精度实时时钟的实现及C语言汇编混合编程
最近一个项目中需要在VxWorks下使用一个高精度实时时钟,要求精度为1ms,溢 出时间大于5小时。VxWorks提供系统时钟,该时钟在操作系统启动后开始计数,精度为1个tick,可以通过tickGet()获取当前计数值。因为 系统时钟默认工作频率为60Hz,则1个tick相当于16.7ms,不符号我们的精度要求。虽然可以通过sysClkRateSet(1000),把精度提高到1ms,但1kHz的原创 2013-07-10 12:04:09 · 4813 阅读 · 0 评论 -
C语言实现哈希表(key为字符型)
简单实现了哈希表的插入和查找功能,简要说明如下:1、数据结构:struct HashNode{ char* sKey; //键 int nValue; //值 HashNode* pNext; //当Hash值冲突时,指向HASH值相同的下一个节点。}HashNode* hashTa原创 2013-06-25 17:08:00 · 17364 阅读 · 5 评论 -
C语言实现哈希表(key为整形变量)
数据结构C语言版 哈希表/* 数据结构C语言版 哈希表 P259 编译环境:Dev-C++ 4.9.9.2 */#include #include #define NULLKEY 0 // 0为无记录标志 #define N 10 // 数据元素个数 typedef int KeyType;// 设关键字域为整型 typedef struct{ KeyType原创 2013-06-25 16:00:17 · 5444 阅读 · 1 评论 -
多任务操作系统中的延时操作应该注意的事项
Linux等多任务操作系统中使用延时函数要特别注意以下几点: (1)应用层和内核层的延时函数是不能混用的。因为,内核层的延时函数在调用过程中是不会发生任务切换的延时是精确的,而应用层的延时函数在延时函数调用是会发生任务切换,延时是不精确的。 (2)模拟时序的操作必须要在内核层完成,即函数执行的过程中不能够发生任务切换,因为切换会导致延时不精确。原创 2013-07-08 10:47:17 · 2138 阅读 · 0 评论 -
C&C++图形图像处理开源库
Google三维APIO3DO3D 是一个开源的 WebAPI 用来在浏览器上创建界面丰富的交互式的 3D 应用程序。这是一种基于网页的可控3D标准。此格式期望真正的基于浏览器,独立于操作系统之外,并且支持主流的3D显卡,这样就可以在网页中实现效果逼真的3D动画。绘图引擎RRDtoo简单的说,RRDtool (RoundRobin Database Tool)就是一个强大的绘图的引擎,原创 2013-10-30 16:55:23 · 23959 阅读 · 1 评论 -
C语言中数组的宏定义
只有在实际的项目开发中,在阅读别人写的代码的过程中才能慢慢的体会到C语言之博大精深。虽然,之前也曾接触过片刻点滴,但是印象总不是那么深刻。这次在遇到在C语言中表示MAC的方法,才更有感触——C语言中数组的宏定义。 typedef int bcm_mac[6];void main() { bcm_mac p; bcm_mac* pointer = (原创 2013-10-30 11:01:46 · 25255 阅读 · 1 评论 -
C++读写文件
忽然在想,如果把自己所写的代码顺序排开,那该有多长?能绕着我的办公桌几圈?^_^ 如果有机会,就把自己写的点点滴滴的代码都总结起来,就像微博一样,算是一种纪念。小陈让我帮他写一个在Linux上运行的将两个文件合并到一个文件的程序,分别读文件1和文件2中的一行内容插入到文件3中。用C++写的,虽然很简单,但也算是微博吧。或许应该借这个机会,将C++和C语言读写文件的方法总结一下原创 2012-09-11 21:33:22 · 889 阅读 · 0 评论