qt
My__God
这个作者很懒,什么都没留下…
展开
-
Qt线程池坑点
近日自己写的一个小工具,用到了Qt线程池QThreadPool和Redis,从QRunnable继承实现了一个Executor,Redis连接由一个自定义的Manager管理,根据当前所处的线程,自动创建连接,连接创建后缓存在Manager中,下次相同的线程再执行任务时,使用之前创建的Redis连接进行操作。使用中有时会出现Redis连接发出数据后,收不到回复的情况,多次试验后发现如果执行一次后,经过30秒以上再执行,就会出现这个问题,30秒以内再次执行则没这个问题。排查过程如下:1.先是怀疑是原创 2021-03-30 21:23:35 · 680 阅读 · 0 评论 -
Qt的鼠标位置知多少
一个很傻的错误要写一个很简单的软件,界面完全定制,没有标题栏,所以需要自己实现窗口拖动,然后我写下了一段很傻的代码原创 2021-01-24 23:19:34 · 1729 阅读 · 4 评论 -
Qt设置根据编译器不同链接不同的lib库
我们知道Qt的pro工程文件中可以编写编译条件,根据不同的条件生成不同的编译指令,常用的是根据系统的不同包含不同的源文件,如win32 { HEADERS += windows.h}linux { HEADERS += linux.h}除了源文件,链接的lib文件也需要在pro中指定,而在windows平台中,可选的编译器有msvc和mingw两种,且这两种编译器的库文件不能通用,那么我们怎么在pro文件中根据编译器的不同包含不同的lib库文件呢,pro文件中我们可以通过CO原创 2021-01-01 00:11:13 · 1444 阅读 · 2 评论 -
Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别
在Qt中添加库文件的时候,Qt会自动在pro文件里生成三行配置INCLUDEPATH += dirDEPENDPATH += dirLIBS += -Ldir -llibxxxincludepath 和 libs作用都比较明确,唯独这个DEPENDPATH的作用不是很清楚,他又和INCLUDEPATH 有什么区别,有点儿稀里糊涂的。先按照我们的惯常操作,问度娘,但是度娘也没有给出答案,所有提到DEPENDPATH就是一句话,设置依赖路径,这和废话没有任何区别,依赖路径又是干啥的,有什么用呢原创 2020-12-22 11:28:28 · 16511 阅读 · 11 评论 -
C++单态模板类
单态模式作为一个经典的设计模式,使用非常广泛,最近用qt写一个应用,其中有多个类决定按单态模式实现,写的过程中感觉大体上的结构都是类似的,每个写一遍太啰嗦了,就想能不能实现一个模板类作为基类,需要使用单态模式的类只需继承这个类即可,方便使用也能保证质量,避免某次编码过程漏写东西。先再网上找了一下有没有别人已经实现的C++单态模板基类,但是网上大部分的代码都是按照单个类的模式实现的,按基类模式写的也都不够完善,或者用的时候还是有点儿麻烦,综合了几种实现方案后,实现了第一版模板基类#ifndef原创 2020-11-06 22:14:34 · 225 阅读 · 0 评论 -
Qt程序调试时如何跟进Qt库的源码
参考文章:https://blog.csdn.net/qing666888/article/details/81223429需要注意的是在debugger窗口看文件路径的时候需要将下图红框里的选项勾上,否则是提示窗口是不会出来的,高版本的QtCreator应该是默认勾选了的,但是低版本的QtCreator默认是没有勾选的...原创 2020-08-03 21:48:10 · 504 阅读 · 0 评论 -
Qt模拟键盘事件
模拟键盘事件:QKeyEvent evt = QKeyEvent(QEvent::KeyRelease, Qt::Key_Right, Qt::NoModifier);qApp->sendEvent(QApplication::focusWidget(), &evt);但是发送上下左右键时,默认的焦点转移不起作用,后来多此测试发现默认的焦点转移响应的是KeyPress事件,改为发送KeyPress事件后生效...原创 2020-07-18 23:25:53 · 948 阅读 · 0 评论 -
Qt修改exe输出路径
Qt编译时默认的exe文件输出路径为Defaultbuilddirectory +编译类型(debug|release) +pro文件中target名字 +后缀名(exe|dll)Defaultbuilddirectory路径pro文件target如果想修改exe最终的输出路径,可修改的地方有两个,一个是修改工程对应的builddirectory修改该目...原创 2020-03-18 12:34:49 · 5150 阅读 · 0 评论 -
开机自启动读取配置文件失败
现象:一个桌面管理程序,程序启动后需要自动启动其所管理的一组程序,手动点击启动程序,运行正常,其他程序可正常启动,设为开机自启动,开机自启正常,但是无法启动其他程序。原因:手动点击启动时程序的启动目录是可执行文件所在目录,开机自启时,程序启动目录不是程序所在目录,而是C:\Windows\System,因程序读取配置文件使用的相对目录,所以会找不到配置文件,导致后续逻辑没有执行。解决方案:...原创 2020-03-18 12:25:16 · 2623 阅读 · 0 评论 -
libodb编译过程
libodb编译过程使用环境: windosw,odb2.4.0,Qt5.7.0,mingw5.3.0,Oracle11g 下载包: 1.odb-2.4.0-i686-windows.zip 2.libodb-2.4.0.zip 3.libodb-qt-2.4.0.zip 4.libodb-mssql-2.4.0.zip 5.libodb-oracle-2.4.0.zipwin原创 2016-12-02 11:14:24 · 1015 阅读 · 0 评论 -
vs中qt addin 环境配置
环境:qt5.7.0,vs2010,qt addin 1.2.5问题:进入vs-》qt5-》Qt Options配置qt version时,提示xxxx\qmake.exe could not found开始以为是addin插件版本不对,换了1.2.4仍然不对,后来发现是设置的位置不对,设置path时要指定到qmake所在bin目录的上一级目录,我指定的是bin目录,所以一直找不到,太原创 2016-11-30 15:35:18 · 1408 阅读 · 0 评论 -
qt下odbc驱动中文乱码解决
qt版本4.8.4使用odbc驱动连接oracel数据库读取中文内容,win7和xp下均出现乱码解决办法重新编译qt odbc驱动找打qt src\plugins\sqldrivers\odbc源码,将QODBCDriverPrivate类的变量unicode值为true,执行编译,用得出的动态库替换qt自带的动态库即可原创 2016-10-31 17:33:26 · 1231 阅读 · 0 评论 -
qt访问oracle速度慢
现象:用qt访问oracle数据库时,执行query.next函数速度很慢原因:oci访问数据库默认未开启数据预读解决方法:调用QSqlDatabase::setConnectionOptions(QString options)函数设置数据预读行数,options内容为OCI_ATTR_PREFETCH_ROWS=100,其中100为预读的数据行数原创 2016-11-09 10:43:38 · 905 阅读 · 0 评论