- 博客(35)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 【Qt奇坑系列】- QObject::connect绑定消息和槽,在某些系统正常,某些系统异常
QObject::connect绑定消息和槽的安全姿势,与奇葩现象
2023-05-15 22:29:28 481
原创 std::this_thread::sleep_for在windows下精度,只有15ms左右
std::this_thread::sleep_for在windows下精度,只有15ms左右
2022-11-07 15:15:41 889 1
原创 ATTiny10开发环境搭建和下载校验失败解决
ATTiny10开发环境搭建和下载校验失败解决背景ATTiny10是原Atmel(后被Microchip收购)的AVR8位单片机,SOT23-6封装(最小单片机),只有6只管脚。开发工具Microchip Studio (V7.0) – for AVR and SAM Devices备注:由Atmel Studio变身而来下载工具“USB AVR ISP mkII mk2”备注:必须支持TPI接口的下载器,国内Usbasp不支持(如果固件烧写成国际板的,油管上说可行)下载引脚接线
2022-04-27 13:59:27 634 1
原创 解决ISE14.7在windows10中,窗体闪退问题
解决ISE14.7在windows10中,窗体闪退问题因为项目需要,上XLINX SPARTAN-6,所以在win10中捣鼓下ISE14.7(都有些OUT了,因为项目只能忍忍了)。刚装好,磨刀霍霍下个示例程序,准备起飞。结果,闪退郁闷了半天。幸好查了半天,网上有解决方案,果然有效果,特此记录下。比如,“start adding device file to Revision 0”点OK后闪退解决方案x86 版本安装目录\ISE\lib\nt下,删除原有【libPortability.dll】,
2022-04-08 18:36:22 1847
原创 解决Win10/11 WSL 子系统 WslRegisterDistribution failed with error: 0x800701bc 错误
windows 子系统 WslRegisterDistribution failed with error: 0x800701bc 错误
2022-04-01 09:35:46 11951 4
原创 windows下std::this_thread::sleep_for精度问题
结论windows平台下,精度只能达到毫秒级,不能实现微秒级以下测试代码#include <iostream>#include <thread>#include <chrono>using namespace std::chrono;int main(){ int testCnt = 10; auto avg = 0.0; while (testCnt-- >0) { auto t1 = steady_cl
2021-12-29 12:01:41 1307
原创 套接字Socket Select异步模型避坑指南
背景最近跟一个公司,联调一个项目。现象:起初发现网络发数据,一会儿后内存就慢慢不停增长,通过屏蔽网路发送就貌似正常了。另外有一方公司,也用得相同数据接收方程序跑,一切都正常,而且都连续跑了个把月都正常。就这样开启了一周的漫长填坑之旅,对自己代码各种怀疑:数据缓存组包,发送业务调度,数据源输出等排查,网络发送机制,套接字API使用细节。各种折腾后,都没发现什么异常,关键是数据量经确认根本不大,后来恍然醒悟,套接字阻塞发API也可能对方收不及时,也会导致发慢。各种怀疑人生后,对方公司也忙填其他坑,就厚着脸
2021-12-29 10:00:58 319
原创 树莓派2B安装TP-Link usb无线wifi驱动
标题树莓派2B安装TP-Link usb无线wifi驱动前言买了好多年的树莓派2B,都没怎么玩,仅仅捣鼓过几次系统。最近因为有个初中弟娃,学习没多大兴趣,加之前几年也准备过一些材料,这次趁暑假和他联手做个机器狗吧,看能提升下学习的兴趣不。经过一顿猛操作,装好系统后,发现usb wifi用不鸟。经过两晚尝试过差不多数十个方案后,还是不行。github上的各种版本,要不是编不过,偶尔一两个能编过的却不能用。快要肝不动的时候,突然惊现一道神光,发现了一篇博文中的一个树莓派官网解决方案,的确包治百病!U
2021-08-10 10:31:53 1380
原创 解决自己的方法名(GetObject)误被windows宏替换
解决自己的方法名(GetObject)误被windows宏替换背景自己用rapidJson写了个解析json函数,用了GetObject获取json对象的方法。各种文件都以正确的姿势包含,居然编译报错。头发都快挠掉一把,咋办、咋办、咋办。。。【F12】方法跑到了“wingdi.h”的 #define GetObject GetObjectA,并没用有用gdi,估计被全家桶"windows.h"引入了。嗖的一下,恍然大悟,被万恶的windows宏给展开了,那我就拿把刀灭了它!解决办法取消GetOb
2021-07-27 17:11:02 710
原创 怎样提高软件接口和方法的兼容性和扩展性
怎样提高软件接口和方法的兼容性和扩展性1、接口方法的参数和返回值尽量用结构体2、接口方法(结构体变量)定义顺序始终不变3、新增接口方法(结构体变量)始终在末尾添加4、废弃接口方法(结构体变量)不删除、保持占位【个人观点,仅供参考】...
2021-07-27 11:51:35 879
原创 Qt Graphics-View 图元显示系统
Qt Graphics-View 图元显示系统踩坑集合QGraphicsView 鼠标移动响应必须设置auto view = new QGraphicsView();view->setMouseTracking(true);【背景说明】开始用的Qt5.12没设置也能正常响应鼠标移动mouseMoveEvent,最后因为用了新接口的Qt5.14后,突然鼠标就不响应了(按下拖动可以的;单移动则不行),后面降版本也不行。最后折腾三个小时后,突然看到一篇博客提到了setMouseTracking
2021-06-16 10:00:45 355
原创 Go调用C API并设置回调函数
Go调用 C API并设置回调函数一听这名字,就些许骚气,耗费大半天饱读度娘,试过一个个坑,终于哭尽肝来!环境坑(编译器GoLand)工程文件必须在GOPATH环境变量目录下否则,编译无输出,一位写Go的胸得说的。记住"Run kind"模式设置为“Package”模式切记不要选"file"模式,因为“Export” Go方法,和Go中得C语言会单独编译为小文件模块,要不会出现不可以思议得编译错误,百思不得其姐。Go编写回调//export showMsgfunc showMsg(
2021-04-14 22:08:25 1189
原创 QGraphicsScene 析构或clear()崩溃问题
QGraphicsScene 析构或clear()崩溃问题原因分析罪魁祸首 —— QGraphicsItem的多次释放QGraphicsScene 析构或clear()会delete未移除的Item几大情形item被智能指针std::shared_ptr等管理,而未移除item中附属item被加入scene中,主item移除未跟随移除忠告注意item由谁管理,怎么释放何时释放,要明明白白,清清楚楚,才能远离各种坑...
2021-03-23 10:36:53 1860 1
原创 Qt .pro文件条件配置与条件编译
Qt .pro文件条件配置与条件编译contains判断宏定义是否存在DEFINES += MY_DEFcontains(DEFINES,MY_DEF){ message('MY_DEF') # ...}else{ message('nothing') # ...}源码中:#ifdef MY_DEF#include <MyClass.h>#endif#ifdef MY_DEF MyClass * my;#endif使用"CON
2021-03-23 10:17:55 2701
原创 c++ 模板实例化类型判断 & 编译期错误抛出
c++ 模板实例化【编译期】类型判断 &错误抛出应用场景1 — 实例化【编译期】类型判断在某个时刻,我们模板实例化时,可能需要对特别的类型做不同的处理。栗子如下:if constexpr (std::is_same_v<T,float>){ ...}else { ...}备注:“if constexpr” 为c++17特性,其他分支判断方法,见后面分支判断说明应用场景2 — 实例化【编译期】错误抛出也许某个时刻,我们的模板中,不支持特定类型的处理,在编译器就报
2021-03-17 15:09:16 2020
原创 Git 常用汇总
Git 常用汇总使用指定Key克隆初始化库目录cd ~/cloneDirgit initssh_agent 代理(免密登录)ssh-agent bash添加指定keyssh-add /d/key/id_rsa.rsaclone代码git clone git@github.com:dreamwatchman/dreamwatchman.git持续更新中…...
2021-01-20 16:10:14 108
原创 CMake 使用笔记
CMake简介Write once,compile and run everywherehello world#CMake 最低版本号要求cmake_minimum_required (VERSION 2.8)#项目信息project (Demo4)#加入一个配置头文件,用于处理 CMake 对源码的设置configure_file ( "${PROJECT_SOURCE_DIR}/config.h.in" "${PROJECT_BINARY_DIR}/config.h" )
2021-01-11 16:13:16 168
原创 Qt .pro工程文件常用配置
这里写自定义目录标题Qt .pro工程文件常用配置设置预处理器宏设置生成bin文件输出路径设置头文件引用路径设置静态库目录设置目标文件的名称设置语言翻译文件设置应用程序ICO平台相关性处理Qt .pro工程文件常用配置工程文件.pro描述了工程信息。工程文件信息会被qmake用于生成包含构建过程中所需的所有命令的MakeFile。工程文件通常包含一系列头文件和源文件,通用配置信息以及应用程序指定的细节,如应用程序的链接库、搜索路径、程序ICO设置等。设置预处理器宏DEFINES += USE_MY_
2021-01-07 11:13:04 182
原创 C++ 跨平台开发的坑集合
C++ 跨平台开发的坑集合std::fstream引发的血案std::fstream::open函数:void open (const char* filename, ios_base::openmode mode = ios_base::in | ios_base::out);void open (const string& filename, ios_base::openmode mode = ios_base::in | ios_base::
2020-10-27 09:48:37 200
原创 ZeroMQ/ZMQ 优秀学习资源大全
《ZeroMQ简介及应用场景分析》https://blog.csdn.net/mysunshinexia01/article/details/80871694《ZeroMQ教程入门学习攻略》https://blog.csdn.net/jigetage/article/details/88580230《ZeroMQ 教程 001 : 基本概览》https://www.cnblogs.com/neooelric/p/8978720.html《ZeroMQ 教程 002 : 高级技巧》[https:
2020-07-13 14:28:35 310
原创 解决QWidget设置QSS无效
前言QWidget设置QSS无效,这个不知是不是Qt的bug,还是有啥高深意义,反正应用中就想自定义一个窗体1、解决方案一(墙裂推荐)不要继承或使用QWidget,改用其他的QFrame,QDialog等,亲测QFrame有效2、解决方案二重载paintEvent,加入以下代码void MyWidget::paintEvent(QPaintEvent *event){ Q_UNUSED(event); QStyleOption styleOpt; styleOpt.in
2020-07-05 18:16:10 1888
原创 DOS窗口(控制台程序)禁用鼠标左键选择(暂停程序的功能)
一、界面设置DOS窗口右击标题栏,选择属性,出现下图所示属性界面取消“快速编辑模式”勾选,点击“确定”按钮,就大功告成二、代码设置作为程序猿的我们,怎么可能让换台电脑运行控制台程序时,都去设置下//设置控制台,禁用编辑auto hStdin = ::GetStdHandle(STD_INPUT_HANDLE);DWORD mode;::GetConsoleMode(hStdin, &mode);mode &= ~ENABLE_QUICK_EDIT_MODE;::Se
2020-07-04 13:01:26 3263
原创 Qt 多语言切换与国际化
1、生成翻译源文件"*.ts"A. 在.pro工程配置中,加入以下配置TRANSLATIONS += cn.tsB. 用Qt creator中的“更新翻译(lupdate)”,生成“cn.ts”翻译源文件2、用Qt语言工具linguist,翻译"zh-cn.ts"并保存3、用Qt creator中的“发布翻译(lrelease)”,生成“zh-cn.qm”二进制文件4、加载语言文件"zh-cn.qm"static QTranslator translator;bool b = fals
2020-06-29 20:53:42 337
原创 Linux、windows组播通信所遇坑集合
windos系统虚拟网卡导致的组播不通很多搞代码的童鞋,会在windows上安装虚拟机捣鼓各种Linux神技。很长一段时间,爽并舒服着,突然有一天蛋疼的问题找上门了:写的组播程序怎么也通不了,程序检查了一遍又一遍,头发抓掉一把又一把,还是没发现任何问题,突然灵光一现,借助网络调试工具吧,可惜然并卵,不通还是不通。码友,不用愁了,请看过来!诊断是否虚拟网卡导致按下Win+R,运行中输入cmd,再Dos窗口中输入命令:netsh interface ipv4 show joins查看哪张网卡加入了
2020-05-15 10:50:45 4143 2
原创 Qt生成程序设置为Linux服务,不能启动问题
利用库函数 daemon()创建守护进程daemon() 其函数原型:#include <unistd.h> int daemon(int nochdir, int noclose); DESCRIPTION The daemon() function is for programs wishing to detach ...
2020-05-06 14:59:45 1129 1
原创 Qt编译代码,不想依赖GUI库时,必须显式去除
Qt编译代码,不想依赖GUI库时,必须显式去除修改Pro配置文件用Qt Console举个栗子愿你少跳一个坑修改Pro配置文件QT -= gui用Qt Console举个栗子用Qt Creator新建个console工程,编译后在Linux下,用ldd命令,查看动态库依赖项。做个简单的对比测试在Pro文件中屏蔽掉:QT -= gui,再重新编译,用ldd命令查看依赖项瞧见没,妖...
2020-05-06 12:24:22 1221 2
原创 Qt + OpenCV 4.2.0 环境搭建
下载OpenCV安装包在官网下载opencv-4.2.0-vc14_vc15.exe包安装Qt用的是MSVC2015_64bit构建套件安装包里已经有VS的编译好的bin,就省略编译。如果用的是MinGW,自己得用CMake编译下,剩余的问下度娘。新建一个Qt Widgets Application修改pro文件配置包含OpenCV头文件目录INCLUDEPATH += D:\...
2020-04-07 23:04:49 1361 1
原创 qt、vs修改windows任务栏右击进程图标显示文字
修改windows任务栏右击进程图标显示文字实质说明Qtvisual studio MFC效果图注意事项实质修改windows任务栏右击进程图标显示文字,实质就是:修改程序exe的描述说明说明以win10为例Qt主要就是修改.pro文件的程序生成配置添加版本字段:VERSION = 1.6.77添加输出文件描述:QMAKE_TARGET_DESCRIPTION = haha...
2020-04-07 22:26:48 1072 1
原创 Hexo + hueman 主题博客同时搭建到github和coding上
hexo + hueman 博客搭建背景Hexo 简介新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入背景...
2020-03-21 12:27:28 435 2
mfc用com组件方式调用word时出现的奇葩现象
2015-10-29
MFC中多点线段加宽度怎样便捷生成CRgn对象
2015-07-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人