QT
文章平均质量分 75
qinpanke
这个作者很懒,什么都没留下…
展开
-
QMap多线程读写存在的问题分析
Qt的单列集合和双列集合在多线程并行访问时有很大的不同之处。单列集合可以多线程并行读写而无需加锁(不考虑数据同步的情况下),而双列集合,例如QMap,如果不加锁进行多线性并行读写会出现内存冲突访问的问题,不加锁的情况下只能并行读。下面本文就对QMap在多线程并行读写访问时可能存在内存冲突的情况进行实验验证,最后给出用互斥锁的方案进行解决的方法。第一步,构造可用于多线程并行访问的全局数据,以类的...原创 2020-01-01 19:55:35 · 4918 阅读 · 2 评论 -
QT线程池实验研究与分析(QThread与和QThreadPool + QRunnable使用上的区别)
第一部分:QT线程池的构建与使用 网上关于QT线程池QThreadPool的文章很多,而且大都千篇一律,基本上都是参考QT的帮助文档介绍QT全局线程池的用法。这样就往往会使人产生误解,QT是不是推荐大家使用其全局线程池,而不推荐使用自定义构造的线程池? 实际情况并不是这样的。而且在实际的项目当中我们通常并不希望仅仅使用一个全局的线程池,而是在需要线程池的工程中都构建和维护自己一个小小的线原创 2016-06-18 11:57:41 · 18170 阅读 · 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 · 1711 阅读 · 0 评论 -
Qt之操作Excel
Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。1994年发行的Excel 5.0版本中,即具备了VBA的宏功能。在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作原创 2016-12-25 17:11:04 · 3380 阅读 · 0 评论 -
QT操作Excel封装类(包含高级功能:合并单元格,文本及单元格格式设定等)
Pro 文件CONFIG += qaxcontainer QT += core QT -= gui TARGET = QExcel CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp \ qe原创 2017-01-01 11:43:39 · 9511 阅读 · 7 评论 -
QT操作Excel时将读写功能置于子线程内存报错解决方案
在程序设计和开发中,我们通常会将比较耗费CPU时间的操作放到子线程当中,从而避免主线程的阻塞,同时显现并行化。尤其是在QT这类涉及到GUI程序设计的程序。我们都知道,在QT中GUI线程占据着主线程,如果我们将那些比较耗费CPU时间的任务放到主线程中执行会导致GUI界面的卡顿或卡死现象的出现。 基于这个原理,前段时间在开发QT读写Excel文件的时候,还是基于该策略,将Excel的读写操作原创 2017-05-01 11:48:24 · 2135 阅读 · 4 评论 -
QT线程QThread多次调用start()函数出现第2次调用失败问题备忘
QT的线程创建和使用都非常方便,其中一种方法就是直接继承QThread类,重写run()方法即可实现将任务置于线程中执行。之前使用一直没有问题,前段时间在使用的过程中遇到一种情况:需要多次传递不同的参数调用start()函数,让线程中的任务重复执行,多次调用是依次进行的,因此我仅创建了一个线程对象。每次run()运行完以后,直接传递新的参数,让该线程重新执行run()里面的任务函数。 此原创 2017-05-13 16:06:31 · 14607 阅读 · 3 评论 -
Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作
QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。QSqlDatabase对象象征了数据库的关联。Qt使用驱动程序与各种数据库的应用编程接口进行通信。Qt的桌面版(Desktop Edition)包括如下一些驱动程序:驱动程序数据库QDB原创 2016-04-01 18:08:02 · 17025 阅读 · 1 评论 -
QT开源绘图项目总结与整理
一直在做QT项目,总离不开绘图功能,这里把自己常用的、用过的或见到的第三方开源绘图项目总结下来以便将来用到的时候直接取材料。 QWT http://qwt.sourceforge.net/ QCustomPlot http://www.qcustomplot.com/index.php/introduction ChartDirector原创 2017-05-09 11:49:43 · 5489 阅读 · 0 评论 -
QThread 使用 SLOT 槽函数
QThread 的两种使用方法1. 不使用事件循环。这是官方的 Manual 、example 以及相关书籍中都介绍的一种的方法。a. 子类化 QThreadb. 重载 run 函数,run函数内有一个 while 或 for 的死循环c. 设置一个标记为来控制死循环的退出。如果使用这一方法,QThread::quit()没有效果。因为这个线程根本就不需要事件循环。这种原创 2017-10-31 11:41:52 · 2034 阅读 · 0 评论 -
基于CTP的期货智能程序化交易系统平台
项目名称:基于CTP的期货智能程序化交易系统平台研究关键词:期货,人工智能,程序化交易,CTP项目简介: 随着中国金融衍生品市场发展的逐步完善,传统的人工操作交易模式已经逐渐难以适应快速的市场变化和剧烈的行情波动,尤其是在以期货为典型代表的“T+0”市场。本项目旨在开发一套一体化智能期货交易系统,将人工智能技术应用于传统的期货交易系统中使得交易员不仅可以基于该系统实现基础...原创 2018-11-21 21:10:37 · 5576 阅读 · 0 评论 -
CTP:报单错误:不允许重复报单(原因及解决方案)
CTP:报单错误:不允许重复报单(原因及解决方案)使用QT5.10+上期的CTP平台开发了一整套程序化交易系统,开发的过程中遇到了各种各样的问题,其中关于CTP接口的开发就遇到了很多坑,甚至很多坑是经过了一段时间的实盘测试才能被发现。本文所描述的就是其中一个问题。系统大部分运行时间报单都是正常的,偶尔会出现CTP:报单错误:不允许重复报答。出现该问题的原因有两个:1、报单时候使用的报...原创 2019-03-30 09:37:49 · 4673 阅读 · 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 · 5513 阅读 · 1 评论 -
QT SDK与C4100编译告警
“warning C4100: … unreferenced formal parameter.”QT SDK (VC2008)在使用qmake生成makefile文件时,缺省会打开C4100的编译告警开关。就我们的开发实践来说,C4100实在是个多余的告警,尤其是在C++程序中,我们经常定义一些虚函数等作为接口类,这些虚函数本身基本是空函数,由派生类重载出具体的实现。一旦放开C4100告原创 2016-05-27 16:05:53 · 1967 阅读 · 0 评论 -
QT布局管理器(QVBoxLayout,QHBoxLayout)不同部分比例大小设置方法
QT布局管理器(QVBoxLayout,QHBoxLayout)不同部分比例大小设置方法 默认情况如果将多个控件加入到QT的布局管理器中(QVBoxLayout、QHBoxLayout)所有控件占用的宽度/高度是等比例大小的。然后,在实际应用和开发中往往希望在同一个布局管理器中,根据控件实际显示内容的多少或大小其相应的比例是不相同的。之前试了很多种方法都不行,偶尔一次发现了原来Q原创 2016-03-22 10:18:43 · 47918 阅读 · 3 评论 -
Qt 实现遍历文件夹和文件目录(递归)
bool FindFile(const QString & path){ QDir dir(path); if (!dir.exists()) return false; dir.setFilter(QDir::Dirs|QDir::Files); dir.setSorting(QDir::DirsFirst); QFileInfoLi原创 2012-10-04 15:02:42 · 2123 阅读 · 0 评论 -
QT的QSqlQuery与QSqlQueryModel读取数据库问题
在使用QT的QSqlQueryModel操作SQLite数据库的时候,遇到了查询只能返回256个结果的问题,经过差不多大半天的时候才找到解决方法。既然说到数据库操作了,就把一些基础性的东西也都贴出来,一方面供初学者参考,另一方面自己也做个备忘。 QT中使用QSqlQuery或者QSqlQueryModelc操作数据库的方法很简单,这里不再赘述,仅贴一个小例子来说明一下。原创 2012-09-14 17:28:44 · 4962 阅读 · 1 评论 -
qwtplot3D安装--终结解决方案
帮同学做一个地热信息展示的软件,需要用到3D显示的内容。一方面,自己比较懒,懒去看OpenGL相关的内容(虽然以前做过3D开发相关的内容,但是毕竟需要处理的代码太多了);另一方面,也是一直在用QWT在帮他做2D图形显示这块,因此就想着用qwtplot3D来做三维显示。毕竟是在OpenGL基础上再封装了一层的,用起来肯定更加的顺手。 但是,在安装的过程中却遇到了很多的问题。咨询原创 2012-10-11 22:50:59 · 12255 阅读 · 9 评论 -
QT出现“undefined reference to `vtable for’”问题的原因及解决方法
QT通过信号与槽机制来实现通信的功能。当该类派生自QObject并且在头文件中添加Q_OBJECT宏以后,就可以使用信号与槽。 信号与槽之间可以进行通信的根本原因是:当在类的头文件中添加Q_OBJECT以后QtCreator会自动的创建一个moc_***.cpp文件,用于实现信号与槽通信的代码。但是,有时当我们通过QtCreator创建类的时候,没有通过IDE选项选择其派生自原创 2012-10-13 00:40:42 · 15736 阅读 · 14 评论 -
实现QT与Flex、Flash的通信(基于Socket)
在Windows下,Flex可以通过ActiveX方式通过ExterneralInterface接口与Qt通信,但是在Linux下,ExternalInterface方法就无效了,只能通过Socket方式与Qt通信。进行通信的两端Flex与Qt,需要绑定指定的端口,监听端口发送的数据(字符串),双方做出相应的响应。下面展示一个Qt与Flex进行文字交互的实例,如下图所示。原创 2013-01-05 09:33:01 · 3063 阅读 · 1 评论 -
QT编译出来的程序过大的解决方法
QT是一款非常不错的GUI开发工具,目前已经发展到QT5.1版本,而且研发速度也在进一步加速。 之前在做QT开发的时候,总遇到编译出来的QT可执行文件和动态库文件非常的大,偶尔在论坛上看见大家关于减小可执行文件大小和动态库文件大小的方法,贴出来以做备忘之用。 (1)静态编译加上upx压缩会变小50%。 但是,也有人说这种做法弊端较大:upx 存储换内存,不值得。原创 2013-07-08 16:43:14 · 7551 阅读 · 8 评论 -
用 Qt 生成热图(heat map)
热图有时候叫热区图或者热力图,都是用于表现某种事物密集度的图形化显示。我写的这个没有画底图,不然会更有趣,比如一个键盘,一张房屋平面图,或者一张Google地图,拿它做什么用,完全取决于你的需要。一、主要用途1、网站设计,可以帮助设计人员知道用户喜欢点哪些地方,对哪些东西感兴趣,以此来改良设计,改善用户体验,百度和腾讯都有提供此类有偿服务。 对位置不敏感,就比如有张全身照的美女原创 2014-03-24 18:14:43 · 11829 阅读 · 2 评论 -
QT官方第三方开源工具
QT官方第三方开源工具。今天再次在网上看到了QT的第三方开源工具列表,这里留下link地址,以备将来用到的时候参考使用。 http://qt-project.org/wiki/Category:Add-ons Add-ons These are third party add-ons and libraries for Qt:原创 2014-03-25 10:28:30 · 11830 阅读 · 3 评论 -
QT跨目录编译及多工程集成(动态库的创建、引用及工程间相互依赖关系的pro文件编写方法)
采用一个非常简单的Qt程序作为例子,通过pro文件的合理编写,使得我们的程序在使用动态库的时候,几乎可以忽略掉动态库的存在。它包括3部分:生成动态库使用动态库生成与使用的自动化测试环境:ubuntu 11.04 + Qt 4.7.2windows vista + Qt 4.7.0(MSVC2008)windows vista + Qt 4.6.3(MinGW)例子的源码:h原创 2014-03-26 18:10:51 · 10092 阅读 · 0 评论 -
QT工程pro文件TEMPLATE变量说明
QT工程pro文件模板变量(TEMPLATE)模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。lib - 建立一个库的makefile。vcapp - 建立一个应用程序的Visual Studio项目文件。vclib - 建立一个库的Visual Stu原创 2014-03-26 18:00:25 · 11994 阅读 · 0 评论 -
安装事件过滤器(installEventFilter) ,过滤子控件事件,截获控件按键、鼠标事件
文章来自:http://blog.csdn.net/iamdbl/article/details/1630043#Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理。假设我们有一个CustomerInfoDialog控件,由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineE原创 2015-12-11 14:16:42 · 13378 阅读 · 2 评论 -
QTableWidget控件使用总结
http://blog.csdn.net/mingxia_sui/article/details/76818631.QTableWidget不能在mainwindow中随主窗口的大小变化?解决:在表格外部添加布局。代码:tableWidget=newQTableWidget;tableWidget->setObjectName(原创 2016-04-03 10:38:45 · 3198 阅读 · 0 评论 -
使用QWT产生error LNK2001的原因及解决方法
在使用QWT进行二维曲线绘制,使用方法如下:class Plot: public QwtPlot{ Q_OBJECT……} 此时报错:error LNK2001:无法解析的外部符号"public: static struct QMetaObject const QwtPlot::staticMetaObject" 出现这样的连接错误一般原创 2012-06-19 18:32:37 · 1185 阅读 · 2 评论